oracle数据库 复制粘贴,oracle数据库迁移步骤思路

背景:做为一名DBA,oracle数据库迁移是经常要遇到的事情,正好最近我也在迁移一个业务系统,数据库就是oracle,顺便记录一下。

说明:为了方便说明,旧的数据库称为A,新的为B。用户和密码是IRP/IRP,B是全新的环境。

步骤思路:

1.从 A 上导出数据文件。

sqlplus/nolog

conn/assysdba

EXPIRP/IRPBUFFER=64000FILE=D:\test.DMPlog=D:\test.logoWNER=IRP

2.在A机器上查看用户默认表空间,以便导入时创建一样的表空间

loading.pngSyntaxhighlighting/OutliningIndicators/None.gif">

sql>selectusername,default_tablespacefromdba_userswhereusername='IRP';

USERNAMEDEFAULT_TABLESPACE

------------------------------------------------------------

IRPIRP

3.查看用户使用的表空间

sql>selectDISTINCTowner,tablespace_namefromdba_extentswhereownerlike'IRP';

OWNERTABLESPACE_NAME

------------------------------------------------------------

IRPIRP

4.查看表空间对应的数据文件,以便在B上创建大小合适的数据文件。

sql>selectfile_name,tablespace_namefromdba_data_fileswheretablespace_namein'IRP';

FILE_NAMetaBLESPACE_NAME

----------------------------------------------------------------------

D:\APP\ADMINISTRATOR\ORADATA\ORCL\IRP.DBFIRP

如果用户使用多个表空间,查询语句如下

selectfile_name,tablespace_namefromdba_data_fileswheretablespace_namein('IRP1','IRP2');

5.检查B机器的表空间,看是否存在IRP(如果是新的服务器,不需要这一步)

selectnamefromv$tablespacewherenamein'IRP'

查找不到,说明没有这个两个表空间,需要创建。

6.在B上创建表空间、用户并授权

创建大文件表空间

CREATEBIGFILETABLESPACE"IRP"DATAFILE'D:\app\oracle\oradata\orcl\irp.dbf'SIZE100MAUTOEXTENDONNEXT100MMAXSIZEUNLIMITEDLOGGINGEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;

创建默认表空间

或者CREATETABLESPACE"IRP"DATAFILE'D:\app\oracle\oradata\orcl\irp.dbf'SIZE100MAUTOEXTENDONNEXT100MMAXSIZE10000MLOGGINGEXTENTMANAGEMENTLOCAL;

创建用户

CREATEUSER"IRP"PROFILE"DEFAULT"IDENTIFIEDBY"IRP"DEFAULTTABLESPACE"IRP"TEMPORARYTABLESPACE"TEMP"ACCOUNTUNLOCK;

授权

GRANT"CONNECT"TO"IRP";

GRANT"RESOURCE"TO"IRP";

GRANTunlimitedtablespaceTO"IRP";

注: BigFile表空间只能创建一个datafile数据文件,SmallFile表空间最多可以创建1024个数据文件

7.如果在服务器B上已经存在该用户,怎么样删除该用户.

查看是否存在该用户sql>selectusernamefromdba_userswhereusername='IRP';

删除用户及其拥有的所有对象

dropuserIRPcascade;

查看这个用户下面是否有对象;

selectobject_type,count(*)fromall_objectswhereowner='IRP'groupbyobject_type

OBJECT_TYPECOUNT(*)

----------------------------------------------------------------------

1SEQUENCE3

2PROCEDURE5

3LOB139

4PACKAGE3

5PACKAGEBODY2

6TRIGGER1

7TABLE384

8INDEX426

9FUNCTION6

此时如果这个用户在连接,drop会出错,必须先杀掉用户的session,然后再drop user

构建杀掉IRP用户session的语句并执行,SELECT'altersystemkillsession'''||SID||','||SERIAL#||'''immediate;'FROMV$SESSIONWHEREUSERNAME='IRP';

上面的语句是构建出杀掉IRP用户session的语句,再复制这些语句,粘贴到sqlplus中执行,来杀掉IRP的session。

'ALTERSYSTEMKILLSESSION'''||SID||','||SERIAL#||'''IMMEDIATE;'

--------------------------------------------------------------

altersystemkillsession'9,42043'immediate;

altersystemkillsession'10,9137'immediate;

altersystemkillsession'72,17487'immediate;

altersystemkillsession'84,3280'immediate;

altersystemkillsession'91,976'immediate;

altersystemkillsession'100,13516'immediate;

altersystemkillsession'111,5973'immediate;

altersystemkillsession'115,4751'immediate;

altersystemkillsession'120,10356'immediate;

altersystemkillsession'211,4075'immediate;

altersystemkillsession'216,48068'immediate;

8.最后在B上导入数据

一定注意执行imp时要退出sqlplus,直接在命令行执行。

IMPtest/testBUFFER=64000FILE=D:\test.DMPlog=D:\imptest.logFROMUSER=IRPTOUSER=IRP

总结

以上是编程之家为你收集整理的oracle数据库迁移步骤思路全部内容,希望文章能够帮你解决oracle数据库迁移步骤思路所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值