统计信息备份还原 统计信息导入
0、重建系统包:sp_create_system_packages(1);
1、测试统计信息还原--新建舞台表
dbms_Stats.create_STAT_table(‘SYSDBA’, ‘TABLE001’);
----删除舞台表--
dbms_stats.drop_STAT_table (‘SYSDBA’, ‘TABLE001’);
2、
--查看用户下的统计信息数量
select count () from stat_TABLE001;
备份统计信息使用CMDS用户登陆188数据库,执行下面备份语句
BEGIN FOR RS IN (SELECT OWNER,TABLE_NAME FROM DBA_TABLES WHERE OWNER='CMDS')
LOOP
dbms_stats.EXPORT_TABLE_STATS(rs.owner,rs.table_name,stattab=>'TABLE001',statid => 'T1_202108161020');
END LOOP;
END;
--查看用户下的统计信息数量
select count (*) from stat_TABLE001;
3、导出统计信息表
./dexp userid=SYSDBA/SYSDBA directory=/data/BACKUP FILE=CMDS0731.dmp log=DEXP.log tables=SYSDBA.‘STAT$_TABLE001’
4、目的端库
测试统计信息还原
--新建舞台表
dbms_Stats.create_STAT_table (‘SYSDBA’,‘TABLE001’);
--查看用户下的统计信息数量
select count () from stats_TABLE001 where statid=‘T1_202108161020’;
将导出的dmp包上传到新数据库服务器上,执行下面命令导入到dmp数据新库建统计信息导入表
./dimp userid=SYSDBA/SYSDBA file=/data/BACKUP/CMDS0731.dmp TABLE_EXISTS_ACTION=REPLACE
--重建系统包:sp_create_system_packages(1)还原统计信息(如果是用替换bin目录的方式升级后的数据库需要重建系统包)
5、还原统计信息
declare
BEGIN
FOR RS IN
(
SELECT OWNER,TABLE_NAME FROM DBA_TABLES WHERE OWNER=‘CMDS’ order by 2
)
LOOP
begin
dbms_stats.IMPORT_TABLE_STATS(rs.owner,rs.table_name, stattab=>‘TABLE001’, statid => ‘T1_202108161020’);
exception
when others then
print (‘TABLE_NAME:’ || rs.table_name);
print ('code: ’ || sqlcode) ;
print ('errm: ’ || sqlerrm) ;
null;
end;
END LOOP;
END;
文章
阅读量
获赞
