闪回技术和数据迁移

闪回技术:依赖undo表空间
undo ------> autoextend on
1.闪回数据库功能(flashback database)----->依赖数据库的闪回功能
闪回进程:rvwr---->recover write
注:
1.不能闪回用户的介质损坏(数据块,文件丢失)
2.数据文件大小做了改变
3.控制文件是重建或是备份控制文件--->scn号不一致
闪回功能:(工作中建议不打开,占用内存)
打开闪回功能: startup mount;---------->alter database flashback on;
查看是否打开闪回功能:select flashback_on from v$database;
查看闪回日志的默认有效期:show parameter flashback_
闪回日志:
闪回区路径,大小
用法:
1.mount状态:startup mount;
2.flashback database to scn <>; | flashback database to timestamp <>;
3.alter database open read only(闪回后的数据全部丢失,可在做查询) | alter database open resetlogs(不在闪回时可以用这个);


2.闪回删除功能(flashback drop)
只针对于:drop table <>
语法: flashback table <> to before drop;--->注意:索引无效且改名
3.闪回查询(flashback query)---->依赖于Undo表空间
查看undo信息: show parameter undo_
包括:
1.flashback query(闪回查询)
语法:select * from <> as of scn <> | timestamp <>;
2.flashback verisons query(闪回版本查询)版本:用户做dml操作只要不提交就是一个版本,commit提交后为另一个版本
语法: select * from <> versions between scn minvalue and maxvalue;
或:selct * from <> versions between timestamp minvalue and maxvalue;
伪列:
versioens_startscn: 事物开始的scn号
versions_starttime:事物开始的时间
versions_endscn:事物结束的scn号
versions_endtime:事物结束的时间
versions_operation:事物操作的类型 (i , u ,d) i :insert u:update d:delete操作
versions_xid:每个事物的id号
3.flashback transaction query(闪回事务查询)---->依赖视图 flashbacke_transaction_query
4.闪回表(flashback table)----->做update和delete 操作没有加where 条件
1.打开行移动:alter table <> enable row movement;
2.flashback table <> to scn | timestamp <>;
3.关闭行移动:alter table <> disable row movement;

完全恢复:控制文件,数据文件,表空间丢失
不玩全恢复:联机日志,表空间丢失使用居于时间点的不玩全恢复
克隆技术:7*24,drop table drp user
会闪技术:dml

数据迁移:
1.exp/imp:时间太长
2.stronge(存储):
3.dg(容灾备份)效率高,宕机时间短,需要2台(主,备)
4.rman
查看当前数据库支持哪些平台迁移:select platform_name from v$transportable_platform;
当前数据库在哪些平台可以迁移:select platform_name,endian_format from v$db_transportable_platform;
转换命令:convert:可以转换数据库和表空间,不能转其他的
转换语法:
表空间: convert tablespace <> platform 'platform_name' to format '/';
库: convert database new database <> transport scrpit '/' platform 'platform_name' to format '/';
例:32位: updb-test表空间 迁移到64位updba中-------->注:迁移前一定要查询是否支持迁移
32位下操作:
1.upde-test 表空间设置为只读模式:alter database test read only;
2.转换表空间为64位的
convert tablespace test to platform 'Linux x86 64-bit' format '/temp/tset.dbf';
3.指定字符集:export NLS_LANG='simplified chinese_china.al32utf8'
4.传出表空间技术导出数据
rman>exp \' / as sysdba\' file='temp/test.dbf' tablespace=test
5.在线表空间: alter tablespace test online;
64位下操作:
1.查看有没有与需要导入的表空间同名,并且创建需要导入的表空间的用户
2.拷贝文件:.dbf 和 .dmp文件
3.传输表空间技术导入文件
rman>imp \' / as sysdba\' file='/' transport_tablespace=y tablespace=test datafile='/';


例:数据库 32bit-->64bit迁移-------->注:迁移前一定要查询是否支持迁移
32---->64bit:打开数据库是需要以升级的方法打开(升级字典):startup upgrade ;
64---->32bit:打开时数据库需要以降级的方式打开(降级字典):startup downgrade;
32bit:
1.以只读方式打开数据库:alter database open read only
2.rman>covert database new database dba64 transport scrpit '/tmp/dba64.sql' to platform 'Linux x86 64-bit' format '/';
format ‘/’ 也可以用 db_file_name_convert=('32位数据文件路径',‘64位数据文件路径’)
64bit:
1.创建存放数据库文件的路径
mkdir /opt/u01/oracle/admin/dba64/{a,dp}dump -p
mkdir /opt/u01/oracle/oradata/dba64
mkdir /opt/u01/oracle/fast_recovery_area
2.32bit---cp-----64bit
scp root@ip:/ /
3.修改脚本中的参数文件
就是64位文件路径里面的init...ora
4.修改创建控制文件的脚本
就会死64为文件路径里面有个.sql
5.sqlplus / as sysdba
@ 64 位文件存放路径中的。sql
6.startup upgrade
@ ?/rbms/admin/utlirp.sql
@ ?/rbms/admin/utlrp.sql
 

转载于:https://my.oschina.net/hdlp520/blog/893011

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值