恢复一个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

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...