ORACLE迁移数据,导库

1 篇文章 0 订阅
1 篇文章 0 订阅

Oracle倒库思想:

1、背景介绍:
同事导出的oracle数据:dmp文件,准备将导入的文件,导入到一个新建的数据库中;(window电脑下)
导入之前应该先了解,两个数据库之间的版本、字符集编码、调整至一致,本次使用impdp导入:(版本没有影响导库)

暂时不知同事 怎么导出的dmp文件,不过使用了impdp命令试了下,导入成功了!!!!

2、如何调整字符集(前期导入发下,有表数据没有插入成功,报了很多同样的错,查询表的结构有了

但是没有数据,百度后发现,字符集问题)


2.1.cmd
2.2.输入set ORACLE_SID=你想进入的数据库的那个sid
2.3.输入 sqlplus /nolog
2.4.将数据库启动到RESTRICTED模式下做字符集更改: 
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;  
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改: 
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 

SQL> select * from v$nls_parameters;    --查看当前使用的字符集

重启检查是否更改完成: 
SQL> shutdown immediate; 
SQL> startup 
SQL> select * from v$nls_parameters;   --查看当前使用的字符集

 

 

3、本次重新创建一个数据库实例 导库
-- 使用 oracle管理工具 创建一个新的 数据库实例  (自行百度)
-- 使用system用户登录  切换sys用户
--来创建表空间,等信息

--创建表空间(考虑数据超级大 26G,一个表空间最多32G,需要增加表空间)

create tablespace 表空间名称
datafile 'E:\app\admin\oradata\****\表空间名称01.dbf' size 10000M
autoextend on next 1024M maxsize unlimited   --每次扩展1024M,无限制扩展
EXTENT MANAGEMENT local  autoallocate
segment space management auto;

--  在增加表空间  (主要  本次要导入的dmp文件 有26G,需要增加表空间)
/*
新增一个数据文件到表空间,数据文件可以放到同一个系统目录下,方便管理。
数据文件初始大小为1024M,自动扩展,最大不限制,也就是最大是32G
*/   
ALTER TABLESPACE 表空间名称 ADD DATAFILE 'E:\app\admin\oradata\***\用户名02.dbf'
    SIZE 5000M AUTOEXTEND ON NEXT 1024M maxsize unlimited;

--创建用户名和密码,分配表空间
create user 用户名 identified by 密码default tablespace 表空间名称 temporary tablespace temp;

--授权test,千万别手残加单引号'test'  加了不报错但是登录不上提示用户名密码错误
grant connect,resource,dba to 用户名;

--//导入dmp到自己创建的表空间,
在第一次cmd进来的用户窗口下
我此次把文件放在:E:\app\admin\admin\***\dpdump  目录下

---执行导库命令 

impdp 用户名/密码@数据库实例名称 dumpfile=dmp文件名称.dmp


4、怎么删除表空间:如果导错:
    怎么删除用户:
--此数据库中有哪些用户
select * from dba_users; 
查询用户的sid serial
select saddr,sid,serial#,paddr,username,status from v$session where  username = '用户名';
--杀死他
alter system kill session '5,262';
--删除用户
DROP USER 用户名 CASCADE;

---------------------------
删除表空间
-- 查询表空间信息
select default_tablespace, temporary_tablespace, d.username  
from dba_users d;
-- 查看用户的表空间信息路径
select file_name from dba_data_files where tablespace_name = '用户名';
--------------------
删除表空间和文件:
drop tablespace 表空间名称 including contents and datafiles;

---其他信息
查询当前数据库实例名:
select instance_name from v$instance;
查询当前数据库名:
select name from v$database;
select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users;  查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !


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


4、多个数据库实例 怎么使用
windows下安装了多个oracle服务后,系统默认会设置最后一次安装的数据库实例,
要切换实例登录sqlplus,在CMD窗口下,先修改ORACLE_SID的值(set ORACLE_SID=xxxx,
该修改仅对当前CMD窗口有效),
接着用同一CMD窗口访问数据库即可。


cmd先执行:
set ORACLE_SID=实例名称

在连接数据库使用:

 

5、参考原文信息链接

oracle 修改字符集 修改为ZHS16GBK

https://blog.csdn.net/qq_22472921/article/details/82020646

是甲方的信息部做数据迁移的时候出错导致的。

https://blog.csdn.net/qq_28722455/article/details/81298452

物理删除DBF文件导致数据库不能正常使用的解决方法

https://blog.csdn.net/qq_31082427/article/details/84067395

oracle 删除表空间

https://blog.csdn.net/qq_42774325/article/details/81913252

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值