四时宝库

程序员的知识宝库

使用docker新建oracle数据库并导入数据

1.从阿里云镜像中心拉取oracle镜像库

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2.创建容器

 docker run --detach --publish=1521:1521 --name=oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g /bin/sh -c '/home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/dbstart /home/oracle/app/oracle/product/11.2.0/dbhome_2 && tail -f /home/oracle/app/oracle/product/11.2.0/dbhome_2/startup.log'

3. 查看容器状态

docker container ls 

4. 进入容器

docker exec -it oracle11g bash 

5.切换到root用户,用户名为:helowin

su root 

6. 编辑profile

	export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
	export ORACLE_SID=helowin 
	export PATH=$ORACLE_HOME/bin:$PATH

备注:由于在容器环境中没有vim命令,这里解决的方式是:

	6.1 cat /etc/profile中内容
 6.2 在宿主机器上创建 profile文件 粘贴6.1内容,并加上
		 export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
	 export ORACLE_SID=helowin 
	 export PATH=$ORACLE_HOME/bin:$PATH
 6.3 使用docker cp 命令,讲profile拷贝到容器 /etc/ 路径下。

7.方便在容器中使用sqlplus命令

	ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

8.切换回oracle用户

	su - oracle

9. 登录

	 sqlplus /nolog

10.以DBA身份登录

		conn /as sysdba

11.创建表空间

drop tablespace 临时表空间 including contents and datafiles
create temporary tablespace 临时表空间 tempfile '\usr\oracle\oracledata\temtablespace.dbf' size 50m autoextend on next 50m maxsize 2048m;
drop tablespace 表空间 including contents and datafiles
create tablespace EAS_D_EASBJ75_STANDARD logging datafile '\usr\oracle\oracledata\tablespace.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local
ALTER TABLESPACE 表空间 ADD DATAFILE '\usr\oracle\oracledata\tablespace2.dbf' SIZE 20480M; 

(如果文件超过了32G要,要追加新的数据文件)

12.创建用户并给权限

create user 用户 identified by 用户密码 default tablespace 表空间 temporary tablespace 临时表空间;
grant dba to 用户;这里直接给了dba权限,如果要求更严格,可以分别给 read,wirte,create,delete等权限。

13. 创建文件读取目录

	create or replace directory dumpdir as '/usr/oracle/dump/dir';

14. 授权用户

 grant read,write on directory dumpdir to 用户 ;
	select * from dba_directories where directory_name='DUMPDUR';
	注意,这里的DUMPDUR是区别大小写的,一定要大写

15. 创建待上传文件路径

 mkdir /usr/oracle/dump/dir

16.授权oracle用户权限

chown -R oracle:oinstall /usr/oracle/dump/dir
 

17.从宿主机器拷贝dump文件文件到容器

docker cp xxxxxxx.dmp oracle11g: /usr/oracle/dump/dir

18.开始导入数据

impdp easbj75/easbj75 DIRECTORY=EASBJ75DIR DUMPFILE=xxxxx.dmp FULL=y;

开始导入数据了,有不懂的地方欢迎留言。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接