南京华为云搭建总结之Oracle环境搭建以及数据泵数据的导入

安装Oracle

Linux 查看是否安装 oracle
ps -ef | grep ora

在这里插入图片描述
如果没安装
直接用Oracle镜像即可

在这里插入图片描述
直接启动即可:

docker run -d --name sath89_oracle-xe-11g -p 1521:1521 04851454491b

04851454491b:这个是镜像id

注意要向外暴漏端口号

在121环境上重新搭建发现的问题:
1.
如果权限不够可以这样启动(让容器拥有root权限):
docker run -d --name xeoracle -p 1522:1521 --privileged 396b3e06a5dc

即使是搭建第二个oracle环境,内部的端口也是1521不要改成别的 ,而是把向外暴露的端口修改成1522

用system登陆用默认密码manager登陆不进去
所以需要修改system用户的密码:

docker exec -it 17064b4e4ce8 bash 进入oracle容器内部

sqlplus /  as  sysdba  连接oracle
alter user SYSTEM account unlock;解锁用户
alter user SYSTEM identified by manager; 修改用户密码为manager
完成可以登陆了

在这里插入图片描述
在这里插入图片描述
然后在创建表空间 创建用户 授予用户权限 然后导入数据泵

创建表空间
create tablespace pty logging datafile ‘/u01/app/oracle/oradata/XE/pitaya.dbf’ size 2000m autoextend on next 200m maxsize 20480m extent management local;

create tablespace pty logging datafile ‘/u01/app/oracle/product/11.2.0/xe/pitaya.dbf’ size 2000m autoextend on next 200m maxsize 20480m extent management local;
注意拷贝的出去的分号是不对的 自己改成英文的
这个地方可以登陆system用户之后在navicat中执行

此处疑问:
这个’/u01/app/oracle/oradata/XE/pitaya.dbf’地址是如何查询出来的
临时表空间并没有创建(后面有解释)

创建用户:
create user pitaya identified by 123456 default tablespace pty;
create user boss identified by 123456 default tablespace pty;

然后授予权限:
grant connect,resource to boss;

grant connect,resource to pitaya;

这个授予权限的语句权限太少

用:
grant all privileges to boss;
这个

这样Oracle就创建完毕了

创建完毕之后要启动Oracle:

启动服务,startup

启动监听, lsnrctl start
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
参考网址:https://www.cnblogs.com/muhehe/p/7944887.html

启动之后就可以登陆

在这里插入图片描述
注意查看是否是orcl还是xe不要写错了 可以查看一下:

在这里插入图片描述

然后如何进入Oracle容器的内部:

docker ps查看容器id

docker exec -it c44cc2eaff43 bash 进入容器

su - oracle 切换到Oracle用户

sqlplus / as sysdba 管理员用户执行sql

在这里插入图片描述
sqlplus usernmae/password

conn pitaya/123456切换链接用户

在这里插入图片描述
查询已创建的数据目录:select * from dba_directories;

创建数据目录(数据文件存放目录):create directory testdir as ‘/oradata’
在这里插入图片描述

(base) [root@localhost ~]# docker exec -it 17064b4e4ce8 bash
root@17064b4e4ce8:/# su oracle
oracle@17064b4e4ce8:/$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Wed Sep 25 06:25:21 2019

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected.
SQL> exit
Disconnected
oracle@17064b4e4ce8:/$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Wed Sep 25 06:26:22 2019

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> conn hr
Enter password: 
ERROR:
ORA-28000: the account is locked


Warning: You are no longer connected to ORACLE.
SQL> conn system
Enter password: 
ERROR:
ORA-01017: invalid username/password; logon denied


SQL> conn system
Enter password: 
ERROR:
ORA-01017: invalid username/password; logon denied


SQL> conn system
Enter password: 
ERROR:
ORA-01017: invalid username/password; logon denied



接下来导入数据泵文件数据::::
注意:数据泵导入要先把本地的数据文件放到容器里面去

(base) [root@localhost ~]# docker exec -it 17064b4e4ce8 bash
root@17064b4e4ce8:/# mkdir oradata
root@17064b4e4ce8:/# 
root@17064b4e4ce8:/# su - oracle
oracle@17064b4e4ce8:~$ sqlplus / as sysdba
SQL> create directory testdir as '/oradata';

注意create directory testdir as ‘/oradata’;
这个分号 要自己改过来 改成英文的不然报错:
SQL> create directory testdir as ‘/oradata’
2
而且 create directory testdir as ‘/oradata’;
这个testdir就是资源文件的别名
后面:
impdp BOSS/123456@192.168.2.121:1522/xe DIRECTORY=testdir DUMPFILE=boss.dmp REMAP_SCHEMA=BOSS:BOSS
这个DIRECTORY=的就是testdir
在这里插入图片描述

容器里面创建了 资源文件
然后
在向linux上的oracle数据库导入的时候,这个directory目录权限要给 数据库用户,比如 oracle,然后在oracle用户下在赋予只读权限
chown -R name:pwd /usr/local

这个是在oracle容器里面的oracle用户操作的所以报错
报错:
在这里插入图片描述

正确应该是:
在这里插入图片描述

然后:
把文件复制进去创建的资源文件里面
docker cp 文件 容器id:路径

在这里插入图片描述

复制进去之后
就impdp导入文件
impdp BOSS/123456@192.168.2.121:1522/xe DIRECTORY=testdir DUMPFILE=boss.dmp REMAP_SCHEMA=BOSS:BOSS

这个DIRECTORY=testdir 就是挂在的文件地址
DUMPFILE=boss.dmp 这里直接跟文件名即可
REMAP_SCHEMA=BOSS:BOSS 这个就是从BOSS用户导入BOSS用户 一般 DMP文件的文件名就是用户名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值