oracle数据库变动记录,记录一次Oracle数据库迁移工作

工作内容

将21地址下的oracle数据中的用户全部迁移到35数据库中。

保证jbpm和其余业务可以正常使用。

工作中使用到的技能

oracle

expdp impdp的使用

用户管理

表空间拓展设置

数据库链接查询与关闭

创建路径并赋予权限

linux

用户切换

ftp命令

空间查看命令

java程序配置

数据库文件配置

思路

根据实际业务程序,整理出需要迁移的数据库用户,并使用expdp命令全部导出(不仅仅是表,包括其他所有object)

expdp test/123456@orcl schemas=test dumpfile=test20181110.dmp directory=dir_dp logfile=test20181110.log

第一个参数为数据库用户名/密码@实例名,需要拥有管理员权限,因需多次使用,最好是利用一个管理员账号,把多个用户导出。

schemas 用户名

dumpfile 导出文件名

direcotry 导出路径,这个路径需要在数据库中进行配置并给导出操作的用户赋予权限

create directory dir_dp as 'D:\oracle\dir_dp';

Grant read,write on directory dir_dp to test;

查看目录和操作权限

SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d

WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;

logfile 日志文件

在35机器上,通过ftp获取21上导出的数据文件

ftp 192.168.1.35

get /oradata/test20181110.dmp

在35的数据库上进行数据导入,需要注意必须存在相应的test用户才能导入

impdp test/123456@orcl schemas=test dumpfile=test20181110.dmp directory=dir_dp logfile=test20181110.log

导入命令的参数与导出相同,注意应先创建路径。

因为之前的同事做过一次迁移,所以35的数据库中存在数据,因为不确定impdp导入是否为全部覆盖,故先删除对应的用户在重新创建

create user lrt identified by test

grant connect, resource, dba to test

grant read, write on directory dir_dp to test

完成所有导入后,修改对应程序中的配置文件即可(java程序中多为xml或properties(中文译为属性))

遇到的问题

导出时报告没有权限错误

在导出的时候,如果系统oracle用户对创建的dir没有写权限,则会导致dmp文件无法写入,需要手动赋予权限。

ftp获取时提示没有权限

错误原因是在获取是使用的oracle用户,没有home路径权限,切换为root,或转移到对应的目录即可。

删除用户时提示用户已连接

原因很明显,只需要查询出对应的连接关闭掉即可

SELECT s.Sid, s.Serial#,p.spid, s.USERNAME,s.OSUser,s.Program FROM V$Process p,V$session s WHERE p.addr=s.paddr(+) and s.username = 'test' ORDER BY s.Sid

alter system kill session 'spid,serial#'

如果实在无法关闭连接,可以强行重启数据库

sqlplu as / sysdba

SHUTDOWN IMMEDIATE

startup

11月1日登陆时发现某用户被锁定

原因暂时没有找到,直接使用Toad工具,进入用户设置,取消锁定选项并重新设置密码即可

暂时先写到这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值