设为首页 收藏本站
查看: 1034|回复: 0

[经验分享] OCP读书笔记(19)

[复制链接]

尚未签到

发表于 2015-6-17 07:44:27 | 显示全部楼层 |阅读模式
  传输表空间:将linux下的数据库中的test表空间传输到windows平台下的数据库
  在传输表空间前,先确定一下源库与目标数据库字符集一致:



select * from nls_database_parameters where parameter =('NLS_CHARACTERSET');
  1. 创建测试目录、测试表空间、测试用户、测试表:



SQL> create directory dump_dir as '/u01/app/oracle/trans';

SQL> create tablespace test datafile '/u01/app/oracle/oradata/orcl/test01.dbf' size 10M;
SQL> create user test default tablespace test identified by a;
SQL> grant connect, resource to test;
SQL> conn test/a
SQL> create table t as select * from user_tables;
SQL> conn scott/tiger
SQL> create table tt tablespace test as select * from emp;
  2. 检测表空间是否是自包含的:



SQL> conn /as sysdba
SQL> execute dbms_tts.transport_set_check('test', true, true);
SQL> select * from transport_set_violations;
  3. 将表空间test设置为只读的:



SQL> alter tablespace test read only;
SQL> exit
  4. 使用数据泵将test的元数据导出:
  [oracle@nylg ~]$ expdp \'/ as sysdba\' DIRECTORY=dump_dir DUMPFILE=test.dmp TRANSPORT_TABLESPACES=test
  5. 检测linux平台与windowns平台的endian格式是否一样:



select platform_name, endian_format from v$transportable_platform order by 2, 1;
  发现一致,可以进行传输,否则不可以传输
  6. 将导出文件/u01/dir/test.dmp 和数据文件(test表空间所对应的数据文件test01.dbf)一起复制到目标数据库
  登到windows平台:
  创建一个存放元数据文件的目录:
  SQL> create directory dump_dir as 'c:\dir';
  将/u01/dir/test.dmp复制到c:\dir
  将/u01/app/oracle/oradata/orcl/test01.dbf放到windowns平台下的数据文件所在的目录
  7. 在目标数据库上创建被传输的表空间所有的对象的属主
  表空间test里所包含的对象的属主包括(在源库查询);



SQL> select distinct owner from dba_segments where tablespace_name= 'TEST';
  在windows平台查看是否有scott和test两个用户:



SQL> select username from dba_users where username='SCOTT';
SQL> select username from dba_users where username='TEST';
  未选定行
  发现没有test,在windows下创建test:



SQL> create user test identified by a;
SQL> grant connect, resource to test;
  8. 调用imp,进行可传输表空间的导入
  C:\oracle\product\10.2.0\oradata\orcl>impdp '/ as sysdba' TRANSPORT_DATAFILES='C:\oracle\product\10.2.0\oradata\orcl\test01.dbf' DIRECTORY=dump_dir DUMPFILE=test.dmp
  9. 导入后在源和目标数据库上,将test的表空间设置为读写状态



--在linux下:
alter tablespace test read write;
--在windowns:
alter tablespace test read write;
  10. 进行验证:
  在windwos下:



sqlplus scott/tiger
select * from tab;
conn test/a
SQL> select * from tab;
conn /as sysdba
SQL> alter user test default tablespace test;
  迁移完毕
  传输数据库:将linux上的orcl数据库传输到windows平台改名为nylg
  1.查询v$transportable_platform确定linux平台与windows平台具有相同的endian格式



SQL> col PLATFORM_NAME for a40
SQL> select platform_name, endian_format from v$transportable_platform order by 2
  发现linux与windowns的endian格式一致都是little,所以可以执行整库迁移
  2.调用dbms_tdb.check_db函数
  该函数用来确定数据库是否已经准备好传输了(包括相同平台和不同平台的传输)该函数返回true,则说明可以进行数据库传输了,如果返回false则说明不能传输。



set serveroutput on
declare
  db boolean;
begin
  db := dbms_tdb.check_db('Linux IA (32-bit)');
  if db then
    dbms_output.put_line('The database can be transport');
  else
    dbms_output.put_line('The database can not be transport');
  end if;
end;
/
  数据库必须以read only方式打开:



SQL> shutdown immediate
SQL> startup mount
SQL> alter database open read only;
set serveroutput on
declare
db boolean;
begin
db := dbms_tdb.check_db('Linux IA (32-bit)');
if db then
dbms_output.put_line('The database can be transport');
else
dbms_output.put_line('The database can not be transport');
end if;
end;
/
  The database can be transport
发现数据库已经准备好
  3.调用dbms_tdb.check_external函数
  该函数用来确定是否具有外部表,目录结构或者BFILE。该函数返回true或false,该结果主要提醒我们,源数据库中有这些外部对象。当把数据文件传输到目标站点上后,不要忘记了将这些对象所对应的文件也一起传输到目标站点上。



declare
  db_external boolean;
begin
  db_external := dbms_tdb.check_external();
end;
/
  发现有一个外部表SH.SALES_TRANSACTIONS_EXT
还有目录:SYS.DUMP_DIR, SYS.DATA_PUMP_DIR, SYS.SUBDIR, SYS.XMLDIR, SYS.MEDIA_DIR,
SYS.LOG_FILE_DIR, SYS.DATA_FILE_DIR, SYS.WORK_DIR, SYS.ADMIN_DIR
bigfile:PM.PRINT_MEDIA
  4.启动rman,执行convert database命令
  在执行之前,先确定是否启用了多个默认的通道



rman target /
show device type;
  如果PARALLELISM的值大于1,则说明启用了并行通道,这时转换会报错,确认了PARALLELISM为1后,执行下面命令:



mkdir -p /u01/app/oracle/trans
rman target /
convert database new database 'hndx'
transport script '/u01/app/oracle/trans/trans.sql'
to platform 'Microsoft Windows IA (64-bit)'
db_file_name_convert '/u01/app/oracle/oradata/orcl' '/u01/app/oracle/trans/';
  转换完以后除了生成转换以后的数据文件以外,还生成了两个文件:
  /u01/app/oracle/trans/trans.sql:命令脚本文件
/u01/app/oracle/product/11.2/db/dbs/init_00oclf1f_1_0.ora:参数文件
  修改参数文件,把目录的位置改为windwos平台上的位置,将转换后的数据文件传送到目标平台:
运行/u01/app/oracle/trans/trans.sql里的命令



创建服务hndx:
oradim -NEW -SID hndx
set oracle_sid=hndx
创建控制文件:
STARTUP NOMOUNT PFILE='c:\trans\inithndx.ora'
CREATE CONTROLFILE REUSE SET DATABASE "HNDX" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'C:\oracle\product\10.2.0\oradata\hndx\redo01.log' SIZE 50M,
GROUP 2 'C:\oracle\product\10.2.0\oradata\hndx\redo02.log' SIZE 50M,
GROUP 3 'C:\oracle\product\10.2.0\oradata\hndx\redo03.log' SIZE 50M
DATAFILE
'C:\oracle\product\10.2.0\oradata\hndx\system01.dbf',
'C:\oracle\product\10.2.0\oradata\hndx\undotbs01.dbf',
'C:\oracle\product\10.2.0\oradata\hndx\sysaux01.dbf',
'C:\oracle\product\10.2.0\oradata\hndx\users01.dbf',
'C:\oracle\product\10.2.0\oradata\hndx\example01.dbf'
CHARACTER SET AL32UTF8;
以resetlogs方式启动数据库,创建日志文件:
ALTER DATABASE OPEN RESETLOGS;
添加临时文件:
ALTER TABLESPACE TEMP ADD TEMPFILE 'C:\oracle\product\10.2.0\oradata\hndx\temp01.dbf'
SIZE 20971520 AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
重新编译pl/sql代码:
SHUTDOWN IMMEDIATE
STARTUP UPGRADE PFILE='C:\trans\initnylg.ora'
@@ ?\rdbms\admin\utlirp.sql
SHUTDOWN IMMEDIATE
create spfile from pfile='c:\trans\initnylg.ora';
STARTUP
.
@@ ?\rdbms\admin\utlrp.sql
创建口令文件:
orapwd file=C:\oracle\product\10.2.0\db_1\database\PWDhndx.ora password=a
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-78017-1-1.html 上篇帖子: ocp 042 第十八章:移动数据 下篇帖子: Oracle 10g OCP 042 题库 121
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表