恢复一个300G的oracle数据库

前端之家收集整理的这篇文章主要介绍了恢复一个300G的oracle数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
最近公司有个项目需要恢复一下一个300G的数据库
准备工作:使用Virtual Box 创建一个windos 2003 的服务器 上面安装了oracle11g
1.首先需要查看创建virtual Box的vdi的大小默认400G,300G备份文件至少需要1T的空间需要修改vdi的空间大小
我进入了Oracle VM VirtualBox安装目录:D:\Program Files\Oracle\VirtualBoxVBoxManage list hdds,回车,查看需要扩容的虚拟硬盘的UUID, 输入命令:VBoxManage modifyhd be05c3ee-3f64-4564-a3e5-7a00bfc4e233 --resize 102400,102400代表要把虚拟硬盘改成多少M。 注意,在调整硬盘之前,一定要先关闭该虚拟机,要扩容的虚拟硬盘在以前创建时应该是动态增长的 VBoxManage modifyhd 4264aafa-a33c-4d25-9a97-f3ca24e8f72b --resize 2048576
 2.出现了字符集问题, 原因在于我们的vdi里的oralcle字符集为select userenv('language') from dual;  simplified chinese_china.al32utf8应该设置成为 MERICAN _ AMERICA. ZHS16GBK
ORA-12899:valuetoolargeforcolumn"JRGAZX"."DTLMB"."CC"(actual:66,maximum:50)
初步断定是字符集问题,中文在UTF-8里占3个字节,ZHS16GBK里占2个字节,而源dmp文件字符集是ZHS16GBK的库到出来的,
现在要导入到目标字符集为UFT-8的库里。
修改数据库字符集为:ZHS16GBK
修改sqlplus /nolog
sql>conn / as sysdba;
sql>SHUTDOWN IMMEDIATE;
sql>STARTUP MOUNT;
sql>ALTER SYSTEM ENABLE RESTRICTED SESSION;
sql>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
sql>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
sql>ALTER DATABASE OPEN;
sql> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*ERROR at line 1:
ORA-12712: new character set must be a superset ofold character set
报字符集不兼容,此时下INTERNAL_USE指令不对字符集超集进行检查:
可以执行下一步 跳转错误操作
sql>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
sql>SHUTDOWN IMMEDIATE
sql>STARTUP
再次用imp导入,就没有问题了。 
 
 
 
 
数据泵导入数据步骤:
cmd 登录 sqlplus / as sysdba
1. 创建表空间
CREATE TABLESPACE NNC_DATA01 DATAFILE 'C:\oraapp\oradata\orcl\nnc_data01.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
CREATE TABLESPACE NNC_INDEX01 DATAFILE 'C:\oraapp\oradata\orcl\nnc_index01.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
CREATE TABLESPACE NNC_DATA02 DATAFILE 'C:\oraapp\oradata\orcl\nnc_data02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
CREATE TABLESPACE NNC_INDEX02 DATAFILE 'C:\oraapp\oradata\orcl\nnc_index02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
CREATE TABLESPACE NNC_DATA03 DATAFILE 'C:\oraapp\oradata\orcl\nnc_data03.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
CREATE TABLESPACE NNC_INDEX03 DATAFILE 'C:\oraapp\oradata\orcl\nnc_index03.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
2. 创建用户
CREATE USER HCM IDENTIFIED BY HCM DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp;
GRANT connect,dba to HCM;
3. 创建目录 并赋权限
Create directory ncdir1 as 'C:\Temp';
Grant read,write on directory ncdir1 to HCM;
4. 导入,并修改用户密码
impdpHCM/HCM DIRECTORY=ncdir1 DUMPFILE=CTGHR20160711PATCH.DMP FULL=y; alter userWATERNCDB identified by 1; 指定用户映射导入可能不需要修改密码
impdp HCM/HCM@orcl directory=ncdir1 dumpfile=CTGHR201608031628.DMP REMAP_SCHEMA=CTGHR:HCM

猜你在找的Oracle相关文章