mac使用docker 搭建oracle
欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入MarkdownText-to-HTMLAuthorsJ
·
mac搭建oracle
1 使用docker 拉取oracle镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker images
sudo docker pull deepdiver/docker-oracle-xe-11g
docker images //查看镜像,确认已经下载完成
2 启动容器,也可以直接打开docker客户端
docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker run -h "oracle" --name "oracle" -d -p 1521:1521 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker run -h "oracle" --name "oracle" -d -p 1521:1521 deepdiver/docker-oracle-xe-11g
-h "oracle":指定容器的hostname为oracle
-name "oracle":将容器命名为oracle
-d:在后台运行
-p: 端口映射,格式为:主机端口:容器端
默认启动容器方式:
sudo docker run -d -p 1521:1521 --name oracle11g deepdiver/docker-oracle-xe-11g
持久化启动方式: 命名为oracle
docker run -itd -p 1521:1521 --name oracle --restart=always source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.aliyuncs.com/helowin/oracle_11g
3 容器配置 start
第一种:docker attach 容器ID(可通过docker ps -a命令获得)
第二种:sudo docker exec -it 你的容器Id(可通过docker ps -a命令获得) /bin/bash
第三种:docker exec -it 容器的name bash
#以root用户进入容器. 使用此哦
sudo docker exec -it -u root 《自己的容器ID或者名称》 bash
5 我们需要通过编辑oracle path变量来配置SID和PATH,从而建立软连接,所以输入如下命令进入配置文件:配置文件
执行 如下配置 vi /etc/profile
# oracle home目录
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
# oracle 服务名或者 SID名,要记住这个名字helowin,它是naivcat或者DBeaver登录的重要选项
export ORACLE_SID=helowin
# oracle环境变量
export PATH=$ORACLE_HOME/bin:$PATH
更新之后需要刷新,让配置生效
source /etc/profile
6 建立软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
7 切换Oracle用户后,登录sqlplus并修改sys、system用户密码
su - oracle //切换到oracle用户
sqlplus /nolog
conn /as sysdba
使用ssh工具以root身份连接服务器,
然后切换到oracle用户:su - oracle(回车)
使用sqlplus连接数据库:sqlplus /nolog(回车)
以管理员身份登录sys用户:conn sys/sys as sysdba(回车)
数据库连接成功,至此准备工作完成。
数据库连接成功后,在SQL>提示后面继续输入:
首先查到到所需修改用户名称的用户需要:select user#,name from user$;(回车)--如:user#等于66
现在就可以修改用户名称了:update user$ set name='新的用户名称' where user#=66;(回车)
系统会提示:1 row updated.说明修改成功,
再输入:commit;(回车)提交所作修改。
三、修改用户密码。
数据库连接成功后,在SQL>提示后输入:ALTER USER 用户名 IDENTIFIED BY 新密码;(回车)
再输入:commit;(回车)提交所作修改即可。
------------------------------------------------------------------------------------
alter user 用户名 identified by 新密码;
alter user sys identified by system;--修改sys用户账号密码;
使用sqlplus连接数据库:sqlplus /nolog(回车)
create user test identified by test; -- 创建内部管理员账号密码;
grant connect,resource,dba to test; --将dba权限授权给内部管理员账号和密码;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; --修改密码规则策略为密码永不过期;
alter system set processes=10000 scope=spfile; --修改数据库最大连接数据;
注意问题: 没有报错则忽略这一步骤
rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
sqlplus / as sysdba # 以 dba 身份连接 oracle 数据库
shutdown immediate # 关闭数据库实例
startup
重启数据库
shutdown immediate; --关闭数据库
# 调整字符集
# 启动数据库mount,
startup
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
# 启动数据库
alter database open;
# 修改数据库 字符编码
ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
# 重新启动数据库
shutdown immediate;
startup; --启动数据库
# 查询字符集
select userenv ('language') from dual;
exit:
8 test 配置oracle的两个文件
监听器listener.ora;;tnsnames.ora
find / | grep /network/admin #查找属于自己的oracle监听配置文件目录
vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora #这里 查询的是上面所得地址
vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora #上面所得地址
listener.ora 配置。这里可配置具体数据库连接信息 ;输入hostname,回车后会显示当前的主机名,代替 localhost
# listener.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) # localhost:1521
)
)
ADR_BASE_LISTENER = /home/oracle/app/oracle
tnsnames.ora::
# tnsnames.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_HELOWIN =
(ADDRESS = (PROTOCOL = TCP)(HOST = loaclhost)(PORT = 1521))
HELOWIN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = helowin)
)
)
最后的结束 语句
exit#退出容器
systemctl restart docker.service#重启服务
docker start 《自己的容器id/名》#重启容器 也 可直接使用小海豚
docker exec -it -u root 《自己的容器id/名称》 bash#重新进入容器
su - oracle#切换oracle账户
sqlplus / as sysdba #登入数据库
SQL>alter system register;#强制重新注册实例
SQL>quit#退出数据库
lsnrctl reload#在容器内重启监听
lsnrctl status#查看监听服务状态
报错;mac 中bash: sqlplus: command not found
vi ~/.bash_profile
注意配置
export oracle_base= /home/oracle/app/oracle //可查看自己的具体地址
登陆oracle
1 进入容器
sudo docker exec -it -u root 自己的id bash
2 进入oracle用户
su - oracle
sqlplus / as sysdba,是oracle登录三种方式之一
oracle登录身份有三种:
1、normal 普通身份;
2、sysdba 系统管理员身份;
3、sysoper 系统操作员身份。
as sysdba 就是以sysdba登录,数据库用sysdba登录的验证有两种方式,一种是通过OS认证,一种是通过密码文件验证;登录方式有两种,一种是在数据库主机直接登录(用os认证的方式)。
-------------------
切换用户登录 connect 用户名/密码 as sysdba
connect sys/system as sysdba
登陆Oracle数据库的时候
SQL> select * from v$version;
SP2-0640: Not connected
解决方法:
SQL> conn sys/ as sysdba;
Enter password:
Connected.
SQL>
最后可通过可视化工具navcat连接数据库oracle

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)