数据库备份


oracle 数据库迁移

########################################################################################

查看源数据库字符集

 select * from nls_database_parameters;

 会查到例如下面的内容

 NLS_CHARACTERSET

 ZHS16GBK 

########################################################################################


在源库中导出数据(备份)

根据上面查到的字符集,进行对数据库按用户进行全量备份:

在备份前需要设点字符集

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

echo $NLS_LANG

对数据库进行备份:

exp OMS_lvnain01/OMS_lvnain01 owner=OMS_lvnain01 file=/home/oracle/gaotest/OMS_lvnain01.dmp

exp OMS_lvnain02/OMS_lvnain02 owner=OMS_lvnain02 file=/home/oracle/gaotest/OMS_lvnain02.dmp

exp OMS_lvnain03/OMS_lvnain03 owner=OMS_lvnain03 file=/home/oracle/gaotest/OMS_lvnain03.dmp


exp PORTAL_lvnain01/PORTAL_lvnain01 owner=PORTAL_lvnain01 file=/home/oracle/gaotest/PORTAL_lvnain01.dmp

exp PORTAL_lvnain02/PORTAL_lvnain02 owner=PORTAL_lvnain02 file=/home/oracle/gaotest/PORTAL_lvnain02.dmp

exp PORTAL_lvnain03/PORTAL_lvnain03 owner=PORTAL_lvnain03 file=/home/oracle/gaotest/PORTAL_lvnain03.dmp


########################################################################################

备份完源库的数据后,需要用下面命令查看源库的表空间。之后再到新服务器上面创建对于的表空间!

select name,status from v$datafile;

########################################################################################

把导出的备份数据传送到迁移的新服务器上

cd /home/oracle/gaotest/

scp -P 6022 ./*  root@192.168.35.178:/data/oracle/gaotest/oms  


cd cd /home/oracle/gaotest/

scp -P 6022 ./*  root@192.168.35.178:/data/oracle/gaotest/portal 


########################################################################################

########################################################################################


在新的服务器上创建数据库表空间,用户的等

1.OMS_lvnain01(数据文件大小2G)

create tablespace OMS_lvnain01 logging  datafile '/data/oracle/app/oracle/OMS_lvnain01.dbf' size 2000m autoextend on next 2000m maxsize unlimited;                                          ##这个表结构的OMS_lvnain01.dbf被我删除,但是内存不变

create user OMS_lvnain01 identified by OMS_lvnain01 default tablespace OMS_lvnain01;

grant connect,resource,dba to OMS_lvnain01;

==========

#drop tablespace OMS_lvnain01;


2. OMS_lvnain02(数据文件大小5G)

create tablespace OMS_lvnain02 logging  datafile '/data/oracle/app/oradata/OMS_lvnain02.dbf' size 5000m autoextend on next 5000m maxsize unlimited;

create user OMS_lvnain02 identified by OMS_lvnain02 default tablespace OMS_lvnain02;

grant connect,resource,dba to OMS_lvnain02;

==========

3.OMS_lvnain03(数据文件大小6G)

create tablespace OMS_lvnain03 logging  datafile '/data/oracle/app/oradata/OMS_lvnain03.dbf' size 6000m autoextend on next 6000m maxsize unlimited;

create user OMS_lvnain03 identified by OMS_lvnain03 default tablespace OMS_lvnain03;

grant connect,resource,dba to OMS_lvnain03;

#drop tablespace OMS_lvnain03;

==========

4.PORTAL_lvnain01(数据文件大小4G)

create tablespace PORTAL_lvnain01 logging  datafile '/data/oracle/app/oradata/PORTAL_lvnain01.dbf' size 4000m autoextend on next 4000m maxsize unlimited;

create user PORTAL_lvnain01 identified by PORTAL_lvnain01 default tablespace PORTAL_lvnain01;

grant connect,resource,dba to PORTAL_lvnain01;

==========

5.PORTAL_lvnain02(数据文件大小2G)

create tablespace PORTAL_lvnain02 logging  datafile '/data/oracle/app/oradata/PORTAL_lvnain02.dbf' size 5000m autoextend on next 5000m maxsize unlimited;

create user PORTAL_lvnain02 identified by PORTAL_lvnain02 default tablespace PORTAL_lvnain02;

grant connect,resource,dba to PORTAL_lvnain02;

==========

6.PORTAL_lvnain03(数据文件大小2G)

create tablespace PORTAL_lvnain03 logging  datafile '/data/oracle/app/oradata/PORTAL_lvnain03.dbf' size 5000m autoextend on next 5000m maxsize unlimited;

create user PORTAL_lvnain03 identified by PORTAL_lvnain03 default tablespace PORTAL_lvnain03;

grant connect,resource,dba to PORTAL_lvnain03;

########################################################################################

########################################################################################


往新服务器中导入数据

在导入数据之前,同样要设点字符集,字符集肯定要和备份时候设定的字符集一样:

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

echo $NLS_LANG

开始导入数据

imp OMS_lvnain01/OMS_lvnain01 fromuser=OMS_lvnain01 touser=OMS_lvnain01 buffer=150009081 commit=y file=/data/oracle/gaotest/oms/OMS_lvnain01.dmp ignore=y

imp OMS_lvnain02/OMS_lvnain02 fromuser=OMS_lvnain02 touser=OMS_lvnain02 buffer=150009081 commit=y file=/data/oracle/gaotest/oms/OMS_lvnain02.dmp ignore=y

imp OMS_lvnain03/OMS_lvnain03 fromuser=OMS_lvnain03 touser=OMS_lvnain03 buffer=150009081 commit=y file=/data/oracle/gaotest/oms/OMS_lvnain03.dmp ignore=y

==============================

imp PORTAL_lvnain01/PORTAL_lvnain01 fromuser=PORTAL_lvnain01 touser=PORTAL_lvnain01 buffer=150009081 commit=y file=/data/oracle/gaotest/portal/PORTAL_lvnain01.dmp ignore=y

imp PORTAL_lvnain02/PORTAL_lvnain02 fromuser=PORTAL_lvnain02 touser=PORTAL_lvnain02  buffer=150009081 commit=y file=/data/oracle/gaotest/portal/PORTAL_lvnain02.dbf ignore=y

imp PORTAL_lvnain03/PORTAL_lvnain03 fromuser=PORTAL_lvnain03 touser=PORTAL_lvnain03  buffer=150009081 commit=y file=/data/oracle/gaotest/portal/PORTAL_lvnain03.dmp  ignore=y

########################################################################################

上面命令中,只有 select 命令是在登录oracle数据库,进行的操作,其他的都是在linux的oracle用户下的shell环境中进行的

########################################################################################