docker安装Oracle11g-Centos环境
1.卸载旧版
首先如果系统中已经存在旧的Docker,则先卸载:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.配置Docker的yum库
首先要安装一个yum工具
yum install -y yum-utils
安装成功后,执行命令,配置Docker的yum源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.安装Docker
最后,执行命令,安装Docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4.启动和校验
# 启动Docker
systemctl start docker
# 停止Docker
systemctl stop docker
# 重启
systemctl restart docker
# 设置开机自启
systemctl enable docker
# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
5.配置镜像加速
这里以阿里云镜像加速为例。
5.1.注册阿里云账号
首先访问阿里云网站:
https://www.aliyun.com/
注册一个账号。
5.2.开通镜像服务
在首页的产品中,找到阿里云的容器镜像服务:
点击后进入控制台:
首次可能需要选择立刻开通,然后进入控制台。
5.3.配置镜像加速
找到镜像工具下的镜像****加速器:
页面向下滚动,即可找到配置的文档说明:
具体命令如下:
# 创建目录
mkdir -p /etc/docker
# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://XXXXXXXXXXXXX.aliyuncs.com"]
}
EOF
# 重新加载配置
systemctl daemon-reload
# 重启Docker
systemctl restart docker
Docker安装
- 拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
查看镜像
docker images
-
启动容器
-
默认启动容器的方式
docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-\hangzhou.aliyuncs.com/helowin/oracle_11g
- 持久化启动的方式
docker run -d -it -p 1521:1521 --name oracle --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
- 查看启动的线程
netstat -tulnp
netstat -tulnp
- 查看运行状态
docker ps -a
docker ps -a
容器内环境配置
进入容器 docker exec -it oracle11g bash
docker exec -it oracle11g bash
切换到 root 用户 su root
,密码为 helowin
su root
helowin
docker容器配置环境变量不是在 /etc/profile
中,容器启动不会走这个文件。
可以将环境变量的配置设置在 /home/oracle/.bashrc
文件下,这样可以省略掉软连接的创建 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
编辑环境变量 vi /home/oracle/.bashrc
,在文件最后加入以下命令
vi /home/oracle/.bashrc
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
wq
保存并退出。然后使用 source /home/oracle/.bashrc
刷新环境变量,并使之生效
source /home/oracle/.bashrc
进入 oracle 命令行
使用 sqlplus /nolog
进入oracle命令行
- 切换到oracle用户,登录sqlplus
su - oracle
sqlplus /nolog
conn /as sysdba
这两个语句是用于Oracle数据库的SQLPlus命令。
-
sqlplus /nolog
:sqlplus
是Oracle提供的命令行工具,用于连接到Oracle数据库并执行SQL命令。/nolog
是一个选项,表示不显示SQLPlus的登录信息。执行该命令后,将直接进入SQLPlus的命令行提示符,等待输入后续的命令。
-
conn /as sysdba
:conn
是SQLPlus中的连接命令,用于连接到指定的数据库。/as sysdba
是一个选项,表示以系统管理员(sysdba)的身份连接到数据库。执行该命令后,需要提供有效的用户名和密码以进行身份验证。
解释完这两个语句后,需要注意的是,以sysdba
身份连接数据库需要具有足够的权限。因此,只有具有相应权限的用户才能执行该命令。
并修改sys、system用户密码:
alter user system identified by "新密码";
alter user system identified by "Orcale11g.";
alter user sys identified by "新密码";
alter user sys identified by "Orcale11g.";
alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;
# UNLIMITED表示密码永不过期。
这些是Oracle数据库的命令,用于修改用户和密码设置。
alter user system identified by YOUR_PASSWORD;
这条命令用于修改名为"system"的用户的密码。你需要将"YOUR_PASSWORD"替换为你要设置的新密码。
alter user sys identified by YOUR_PASSWORD;
这条命令也是修改用户的密码,这次是名为"sys"的用户。同样,你需要将"YOUR_PASSWORD"替换为你要设置的新密码。
alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;
这条命令修改了默认的账户配置文件,将密码的生命周期时间设置为无限(即没有过期时间)。如果你想设置一个具体的密码生命周期,你可以将"UNLIMITED"替换为以天为单位的特定数字。
注意:在Oracle数据库中,sys和system是两个非常重要的用户。他们分别是大写的SYS和SYSTEM,小写的sys和system是这两个用户的昵称或别名。在修改这些用户的密码时需要特别小心,因为他们对数据库有很高的权限。
- 创建用户
create user 用户名 identified by "密码";
create user oracle11g identified by "Orcale11g.";
grant connect,resource,dba to 用户名;
grant connect,resource,dba to oracle11g;
这段代码是Oracle数据库中的命令,用于创建一个新用户并授予其特定的权限。
-
create user 用户名 identified by "密码";;
这个命令用于创建一个新的用户,用户名为"zjq",并要求用户输入"zjq"作为密码来验证身份。 -
grant connect,resource,dba to 用户名;
这个命令用于授予"zjq"用户连接、资源、和数据库管理员(DBA)权限。 -
使用Navicat链接Oracle
数据库名用错
查看服务器名称
select global_name from global_name;
select instance_name from v$instance;
#这两句SQL语句分别查询了不同的数据表,因此它们查询的结果也会有所不同。
#第一句“select global_name from global_name;”是在查询名为“global_name”的表中的“global_name”列。这个表可能包含一些全局名#称或标识符,例如数据库中的用户名、角色名、数据库名等。
#第二句“select instance_name from vinstance;”是在查询名为“vinstance”的表中的“instance_name”列。这个表通常包含有关Oracle数据库实例的信息,例如实例名称、实例标识符等。
#因此,这两句SQL语句查询的结果会根据表的定义和内容而有所不同。第一句查询可能会返回全局名称或标识符的列表,而第二句查询则可能会返回有关Oracle数据库实例的信息。