荆轲刺秦王
从线上正式环境导出的 dmp 文件,导入到本地 oracle 数据库。
- 创建用户:
bash
CREATE USER hf_chip IDENTIFIED BY hf_chip;
- 授予 CONNECT 和 RESOURCE 基本权限给新用户。
bash
GRANT CONNECT, RESOURCE TO hf_chip;
- 创建表空间
bash
CREATE TABLESPACE topprod DATAFILE '/home/oracle/datafile/hf_chip/hf_chip_datafile.dbf' SIZE 500M AUTOEXTEND ON;
这里 topprod 是新表空间的名称,datafile.dbf 是数据文件的路径和名称,500M是初始大小,AUTOEXTEND ON表示数据文件可以自动扩展。
- 将表空间和用户关联
bash
GRANT UNLIMITED TABLESPACE TO hf_chip;
- 用户注册
bash
alter system register;
只有用户注册之后,才能用这个用户去导入,注册成功之后启动监听.
另起一个窗口:
bash
cd /db/app/oracle/product/11.2.0/db_1/bin/
查看监听状态:
bash
lsnrctl status
打开监听状态:
bash
lsnrctl start
正确的情况,如下图:
status READY 是正确状态, UNKNOW是错误状态.
然后执行导入,另起一个窗口,用 oracle 用户,执行:
bash
imp system/oracle@127.0.0.1:1521/orcl file=/u6/Back_hf_chip_20240606topprod.dmp TABLESPACES=topprod log=/u6/log/imp_topprod.log full=y ignore=y indexes=n
注意:我这里给了 /u6 文件夹和 /u6/log/ 都是 chmod 777 后的。否则会报错。