Oracle系列一:技术杂谈

搭建环境介绍

entos7 vmware虚拟机环境
1.更新yum
yum update
2.安装Docker
yum install docker
安装完成后查看Docker的版本:
docker version
查看Docker的信息:
docker info
3.安装完后启动Docker
systemctl start docker.service

如果启动报错:
could not change group /var/run/docker.sock to docker: group docker not found
编辑:vi /etc/fstab 文件并在未尾加入以下内容:
none        /sys/fs/cgroup        cgroup        defaults    0    0
然后再启动Docker

开机自启动:
chkconfig docker on
4.下载安装Oracle-xe-11g
docker pull wnameless/oracle-xe-11g
下载过程可能要花费一定的时间,下载完成后运行以下命令启动一个Oracle XE容器
docker run -d -p 1521:1521 -p 8080:8080 wnameless/oracle-xe-11g

查看并进入Docker 容器
[root@localhost text]# docker ps -a
进入容器空间即可进行sqlplus登录操作
[root@localhost text]# docker exec -it f7**7 /bin/bash
进入容器后操作
Oracle有两个用户sys和system默认密码都是oracle。
这里我用sys账户登录。
首先进入sqlplus


Oracle系列一:技术杂谈_第1张图片
image.png

提示要用sysdba,最后用sys as sysdba 进入

Oracle系列一:技术杂谈_第2张图片
image.png

就是第一次进入sqlplus时,会提示这个信息,大意就是密码将在7天内过期。
ERROR: ORA-28002 : the password will expire within 7 days

出现上述情况的原因在于Oracle11g在default profile中设定了180 days。PS:有人肯定会问这不是180天吗跟7天有什么关系,在这里不作详细解释。
具体解决方案等会使用Intellij IDEA 连接后解决。PS:主要是好操作。

可用IDEA工具连接

Oracle系列一:技术杂谈_第3张图片
image.png

解决密码过期问题
1.检查该用戶的profile是哪個,一般都是DEFAULT。

SQL SELECT username,PROFILE FROM dba_users; 
Oracle系列一:技术杂谈_第4张图片
image.png

2.查看该DEFAULT的密码有效期配置。

SQL SELECT * FROM dba_profiles d WHERE d.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
image.png

3.將密码有效期由180天改成无期限。

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;    
Oracle系列一:技术杂谈_第5张图片
image.png

到这里就已经搞定,但是这只是代表了后面用别的用户登录不会出现ORA-28002错误,但之前我们用sys用户登录该用户密码依然会在7天后过期,所以只需要我们在修改一次密码行了。

alter user sys identified by 密码

解锁和创建用户

1.解锁HR用户
首先查看用户名和用户状态

SELECT username,account_status FROM dba_users ORDER BY username;  
Oracle系列一:技术杂谈_第6张图片
image.png

2.然后解锁HR用户

ALTER USER hr ACCOUNT UNLOCK 
Oracle系列一:技术杂谈_第7张图片
image.png

3.通过修改密码来改变状态

alter user HR identified by 密码

再去查询

SELECT username,account_status FROM dba_users ORDER BY username;
Oracle系列一:技术杂谈_第8张图片
image.png

创建SCOTT用户
首先创建用户

CREATE USER  scott IDENTIFIED  BY tiger;

然后授权

GRANT CONNECT ,RESOURCE ,DBA TO scott;

再去查询

SELECT username,account_status FROM dba_users ORDER BY username;
Oracle系列一:技术杂谈_第9张图片
image.png

启动数据库
启动模式有3种:
1)Startup nomount (nomount模式)启动实例不加载数据库。
2)Startup mount (mount模式)启动实例加载数据库但不打开数据库
3)Startup (open 模式)启动实例加载并打开数据库,就是我们上面所用的命令
Nomount模式中oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据库文件,


Oracle系列一:技术杂谈_第10张图片
image.png

关闭数据库

1)正常关闭 shutdown
2 ) 立即关闭 shutdown immediate
3 ) 关闭事务 shutdown transactional
4 ) 强行关闭 shutdown abort,当然谁都不想碰到这种情况。

Oracle系列一:技术杂谈_第11张图片
image.png

你可能感兴趣的:(Oracle系列一:技术杂谈)