【oracle】使用centos7的docker镜像安装oracle, 版本11gR2

Docker安装oralce 【代码】Docker安装oralce。 阅读详情

0. su - oracle和su oracle的区别

su - oracle,相当于重新登陆,此时用户的家目录和PATH等信息会发生改变
su oracle,切换到oracle身份后用户的家目录和PATH仍然是原先用户的家目录和PATH

0. 重新安装orale

删除 /home/oracle/toole/oracle11g 和 /home/oracle/toole/oraInventory 下的所有文件,然后重新执行安装命令

1. 拉取centos7镜像

docker pull centos:7
# docker pull registry.cn-hangzhou.aliyuncs.com/ypfei/centos:base_centos_7_9_2009
# oracle不支持ubuntu,最好使用centos安装oracle

2. 创建容器

# Oracle 数据库从11g开始,自动内存管理特性需要更多的共享内存 ( /dev/shm ) 和文件描述符。共享内存的大小应该至少大于该计算机上每个 Oracle # 实例的 MEMORY_MAX_TARGET 和 MEMORY_TARGET 。
# /dev/shm 并不占用磁盘空间,而是存放在内存上面,因此和 RAM (Random Access Memory)一样断电清空数据。
# /dev/shm 使用增量占用空间,并不会是将挂载点的空间全部占用, /dev/shm 挂载点未占用的空间将会被内存使用。
# --shm-size: /dev/shm在docker容器启动时默认是64M,安装oracle11g需要shm至少1024M,启动容器时需要使用--shm-size参数指定shm的大小
docker run -it --shm-size=2048m  -v /cen:/cen --name cen registry.cn-hangzhou.aliyuncs.com/ypfei/centos:base_centos_7_9_2009 /bin/bash

3. centos7 解决中文乱码

操作用户:root

01、查看系统有那些编码

locale -a
# 此三行意思是使用的编码en_US.UTF-8在系统中不存在
# locale: Cannot set LC_CTYPE to default locale: No such file or directory
# locale: Cannot set LC_MESSAGES to default locale: No such file or directory
# locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
en_US.utf8
POSIX

02、查看正在使用的编码

locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

03、修改系统编码

# 将以下两行添加到 ~/.bashrc最后
export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
# 执行source命令使修改在不用重启的情况下生效
source ~/.bashrc

4. 设置centos 的镜像源

操作用户:root
# 如果CentOS-Base.repo不存在,直接执行vi创建
# mv /etc/yum.repos.d/CentOS-Base.repo  /etc/yum.repos.d/CentOS-Base.repo.bak
vi /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
03、执行以下命令
yum makecache
yum -y update

5. 安装java1.8

操作用户:root
01、使用yum直接安装
yum install java-1.8.0-openjdk* -y
02、 查看java版本
java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
设置环境变量
# 使用yun安装的java,环境变量已经设置好, 不用重复设置

6. 下载oracle数据库

# linux.x64_11gR2_database_1of2.zip
链接:https://pan.baidu.com/s/10gr84Fu5Urmf1dLbQFprOA 
提取码:5fqr 
# linux.x64_11gR2_database_2of2.zip
链接:https://pan.baidu.com/s/112Q8Qk6Y8i0QTWzhdodsxA 
提取码:4f8o 

7. 禁用SELinux和防火墙

操作用户:root
yum -y  install vim
vim /etc/selinux/config
 # 添加以下内容
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
# SELINUX=enforcing 
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
SELinux 的不正确配置会影响网络
(1)enforcing --- SELinux security policy is enforced.代表记录警告且阻止可疑行为
(2)permissive --- SELinux prints warnings instead of 代表仅记录安全警告但不阻止可疑行为
(3)disabled --- SELinux is fully disabled.SELinux 被禁用
SELINUXTYPE设置
(1)targeted 代表仅针对预制的几种网络服务和访问请求使用 SELinux 保护,
(2)strict 代表所有网络服务和访问请求都要经过 SELinux。
# 使修改生效
source /etc/selinux/config

8. 安装oracle需要的依赖包

操作用户:root
执行如下命令安装依赖包
yum install -y automake autotools-dev binutils bzip2 elfutils expat \
gawk gcc gcc-multilib g++-multilib lib32ncurses5 lib32z1 \
ksh less lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 \
libc6-i386 libelf-dev libltdl-dev libodbcinstq4-1 libodbcinstq4-1:i386 \
libpth-dev libpthread-stubs0-dev libstdc++5 make openssh-server rlwrap \
rpm sysstat unixodbc unixodbc-dev unzip x11-utils zlibc unzip cifs-utils \
libXext.x86_64  glibc.i686
如果上述命令报错,则使用如下命令安装
yum -y install xz wget gcc-c++ ncurses ncurses-devel \
cmake make perl openssl openssl-devel gcc* libxml2 \
libxml2-devel curl-devel libjpeg* libpng* freetype* \
make gcc-c++ cmake bison perl perl-devel  perl perl-devel \
glibc-devel.i686 glibc-devel libaio readline-devel \
zlib.x86_64 zlib-devel.x86_64 libcurl-* net-tool*  \
sysstat lrzsz dos2unix telnet.x86_64 iotop unzip \
ftp.x86_64 xfs* expect vim psmisc openssh-client* \
libaio bzip2  epel-release automake binutils bzip2 \
elfutils expat gawk gcc  ksh less make openssh-server \
rpm sysstat unzip unzip cifs-utils libXext.x86_64  \
glibc.i686 binutils compat-libstdc++-33 \
elfutils-libelf elfutils-libelf-devel \
expat gcc gcc-c++ glibc glibc-common \
glibc-devel glibc-headers libaio \
libaio-devel libgcc libstdc++ libstdc++-devel \
make sysstat unixODBC unixODBC-devel libnsl

9. 创建oracle用户

操作用户为:root
用户信息介绍: 

oracle用户介绍

groupadd -g 502 oinstall
groupadd -g 503 dba
groupadd -g 504 oper
groupadd -g 505 asmadmin
useradd -u 502 -g oinstall -G oinstall,dba,asmadmin,oper -s /bin/bash -m oracle
yum install -y passwd
passwd oracle
上述命令执行完毕后,为oracle用户设置密码,例如,设置的密码为Oracle66
# 修改root的密码
passwd root 
# 可设置与oracle密码一致

10. 修改系统配置

01、修改资源控制文件
操作用户:root
操作文件:/etc/security/limits.conf
vim /etc/security/limits.conf
在文件的末尾添加如下配置项。
oracle          soft      nproc   2047
oracle          hard      nproc   16384
oracle          soft      nofile  1024
oracle          hard      nofile  65536
oracle          soft      stack   10240
资源限制是针对单个进程的限制,不是针对整个系统总的设置
修改limits.conf以后,将马上生效。但是,如果用户已经登录系统,那么对于该用户的限制将在下一次用户重新登录以后才生效。如果要让对该用户的限制生效,只能让该用户注销然后重新登录就可以了。
/etc/security/limits.conf
    core - 限制内核文件的大小
  date - 最大数据大小
  fsize - 最大文件大小
  memlock - 最大锁定内存地址空间
  nofile - 打开文件的最大数目
  rss - 最大持久设置大小
  stack - 最大栈大小
  cpu - 以分钟为单位的最多 CPU 时间
  noproc - 进程的最大数目
  as - 地址空间限制
  maxlogins - 此用户允许登录的最大数目
nofile - 打开文件的最大数目,该值不能等于/proc/sys/fs/file-max,如果等于file-max且打开的文件句柄的数量达到file-max,用户将不能登陆操作系统。
02、在/etc/pam.d/login 文件中
vim /etc/pam.d/login
# 使用文本编辑器或vi命令增加或修改以下内容
session required /lib/security/pam_limits.so
session required pam_limits.so
03、配置PAM
 vim /etc/profile
 # 在/etc/profile文件中添加以下内容
if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi
# 使设置生效
source /etc/profile
04. 修改内核参数(这个修改可做可不做,待定)
# 在/etc/sysctl.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

# 修改后,使设置生效
sysctl -p


# 若报错如下
sysctl: permission denied on key 'fs.aio-max-nr'
sysctl: permission denied on key 'fs.file-max'
sysctl: permission denied on key 'kernel.shmall'
sysctl: permission denied on key 'kernel.shmmax'
sysctl: permission denied on key 'kernel.shmmni'
sysctl: permission denied on key 'kernel.sem'
sysctl: permission denied on key 'net.ipv4.ip_local_port_range'
sysctl: permission denied on key 'net.core.rmem_default'
sysctl: permission denied on key 'net.core.rmem_max'
sysctl: permission denied on key 'net.core.wmem_default'
sysctl: permission denied on key 'net.core.wmem_max'
# 解决方法
rm -f /sbin/modprobe 
ln -s /bin/true /sbin/modprobe
rm -f /sbin/sysctl 
ln -s /bin/true /sbin/sysctl
# 再次执行
sysctl -p

11. 解压Oracle数据库安装包

操作用户:oracle
操作目录:/home/oracle
yum -y install unzip
将Oracle 11gR2安装文件上传(可以使用sftp上传)到该操作目录下面,然后顺序解压安装文件到该目录。
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
# 解压后的文件都在/home/oracle/database目录中

12. .创建Oracle安装目录

01、配置/home/oracle/tools/oracle11g目录
操作用户:oracle
mkdir -p ~/tools/oracle11g
mkdir -p ~/tools/oraInventory
chown -R oracle:oinstall /home/oracle/tools/oracle11g
chmod -R 775 /home/oracle/tools/oracle11g
chown -R oracle:oinstall /home/oracle/tools/oraInventory
chmod -R 775 /home/oracle/tools/oraInventory
02、配置/etc/oraInst.loc文件
操作用户:root
vim /etc/oraInst.loc
# 创建/etc/oraInst.loc文件,内容如下
inventory_loc=/home/oracle/tools/oraInventory
inst_group=oinstall
# 更改文件的权限
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc

13. 修改环境变量

操作用户:oracle
操作目录:/home/oracle
vim ~/.bash_profile
在文件末尾添加如下配置项
export ORACLE_BASE=/home/oracle/tools/oracle11g
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export NLS_LANG=.AL32UTF8
export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib64
使得环境变量生效。
source ~/.bash_profile

14. 修改Oracle配置文件

操作用户:oracle
操作目录:/home/oracle
复制文件模板
mkdir etc
cp /home/oracle/database/response/*  /home/oracle/etc/
vim etc/db_install.rsp
对/home/oracle/etc/db_install.rsp文件进行编辑。
需要修改的配置项如下所示,这里,我将修改后的配置项列举出来。
oracle.install.option=INSTALL_DB_AND_CONFIG  # 安装类型
ORACLE_HOSTNAME=0.0.0.0 #实际上可以修改成你自己的主机名或者域名(IP),主机名称(hostname查询)
UNIX_GROUP_NAME=oinstall # 安装组
INVENTORY_LOCATION=/home/oracle/tools/oraInventory #  INVENTORY目录(不填就是默认值) 注意:这里inventory目录最好不要填写与oracle安装路径一致的目录,会报错
SELECTED_LANGUAGES=en,zh_CN # 选择语言
ORACLE_HOME=/home/oracle/tools/oracle11g/product/11.2.0/dbhome_1  # oracle_home
ORACLE_BASE=/home/oracle/tools/oracle11g  # oracle_base
oracle.install.db.InstallEdition=EE  # oracle版本
oracle.install.db.isCustomInstall=false  # 自定义安装,否,使用默认组件
oracle.install.db.DBA_GROUP=dba  # dba用户组
oracle.install.db.OPER_GROUP=oper  # oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE   #  数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl  # globalDBName
oracle.install.db.config.starterdb.SID=orcl   # SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8  
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1024  # 自动管理内存的内存(M),/dev/shm的大小必须大与这里设置的大小
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.password.ALL=Oracle66  # 设定所有数据库用户使用同一个密码
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=test@qq.com #可以填写你自己的邮箱地址
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/home/oracle/tools/oracle11g/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/home/oracle/tools/oracle11g/fast_recovery_area
oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true # 设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)
# 设置响应文件权限
su - root
chmod 700 /home/oracle/etc/*.rsp # (注意所有者,oinstall)
su - oracle

15、执行安装命令

cd /home/oracle/database
./runInstaller -silent -ignoreSysPrereqs -ignorePrereq -responseFile /home/oracle/etc/db_install.rsp
# -silent             表示静默安装
# -noconfig          表示只安装软件
# -responseFile     指定响应文件
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 36754 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 2048 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2021-01-30_10-01-15PM. Please wait ...[oracle@1260952cd44c database]$ You can find the log of this install session at:
 /home/oracle/tools/oraInventory/logs/installActions2021-01-30_10-01-15PM.log
等待一段时间后,如果输出如下信息,则表明Oracle数据库已经安装成功。(注意,不要使用ctrl+c结束安装,需要等待一段时间才能安装好)
The following configuration scripts need to be executed as the "root" user. 
 #!/bin/sh 
 #Root scripts to run
/home/oracle/tools/oracle11g/product/11.2.0/dbhome_1/root.sh
To execute the configuration scripts:
	 1. Open a terminal window 
	 2. Log in as "root" 
	 3. Run the scripts 
	 4. Return to this window and hit "Enter" key to continue 

Successfully Setup Software.

16.完成安装并启动

操作用户:root
# 根据上一步完成信息提示,执行以下两行命令,具体位置需要根据你的安装位置决定(直接执行即可,不需要使用sh执行):
/home/oracle/tools/oracle11g/product/11.2.0/dbhome_1/root.sh
su - oracle
sqlplus /nolog
# 使用dba权限连接Oralce
connect / as sysdba
#启动数据库
startup
# 关闭数据库命令未
# shutdown immediate;
# 确认启动结果:
ORACLE instance started.

Total System Global Area  534462464 bytes
Fixed Size                  2215064 bytes
Variable Size            373293928 bytes
Database Buffers          150994944 bytes
Redo Buffers                7958528 bytes
Database mounted.
Database opened.
# 注册数控库到监听服务
alter system register
# 修改system用户密码
alter user SYSTEM identified by SYSTEM;
# 修改sys用户密码
alter user SYS identified by SYS;
# 查看system用户的权限(注意:oralce用户名为全大写)
select privilege from dba_SYS_privs where grantee='SYSTEM';

17.创建连接用户

操作用户:oracle
# 创建myoracle用户,并指定密码为myoracle
create user MYORACLE identified by MYORACLE;
# 给myoracle赋予权限
grant connect,resource,dba to MYORACLE;
# 测试连接用户是否成功, 切换用户链接(注意创建的时候用大写,这里也用大写)
conn MYORACLE/MYORACLE
# 报错如下:
ERROR:
ORA-28000: the account is locked
Warning: You are no longer connected to ORACLE.
# 解决方法
alter user MYORACLE account unlock;                                   # 解锁访问限制
alter profile default limit failed_login_attempts unlimited;     # 设置连续登陆次数为无限
# 再次连接
SQL> conn MYORACLE/MYORACLE
Connected.

18、启动监听数据库

启动已经安装的数据库orcl。
操作用户: oracle
01、修改listener.ora
# 修改listener.ora文件
vim /home/oracle/tools/oracle11g/product/11.2.0/dbhome_1/network/admin/listener.ora
# 修改HOST字段并添加SID_LIST_LISTENER, HOST字段修改为/home/oracle/etc/db_install.rsp,修改后如下
# listener.ora Network Configuration File: /home/oracle/tools/oracle11g/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /home/oracle/tools/oracle11g/product/11.2.0/dbhome_1)
      (SID_NAME = orcl)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /home/oracle/tools/oracle11g
02、修改tnsnames.ora
# 修改listener.ora文件,
vim /home/oracle/tools/oracle11g/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# 修改HOST字段,此字段修改成/home/oracle/etc/db_install.rsp中ORACLE_HOSTNAME字段一致,修改后如下
# tnsnames.ora Network Configuration File: /home/oracle/tools/oracle11g/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

03、启动监听
# 启动监听
lsnrctl  start

19. python连接oracle(暂时使用system用户可以连接,其他创建的连接用户暂时连接不了)

import cx_Oracle
# conn=cx_Oracle.connect('system/system@172.17.0.2:1521/orcl')
conn=cx_Oracle.connect('MYORACLE/MYORACLE@172.17.0.2:1521/orcl') # 注意: 创建的时候使用大写,这里也要写大写
c=conn.cursor()                                           
x=c.execute('select sysdate from dual')                   
print(x.fetchone())
c.close()                                                 
conn.close()

20. oracle使用

oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命令集。
例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限( database object privilege )
可以让用户能够对各个对象进行某些操作。例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表、视图、
序列(sequences)或快照(snapshots)中查询信息。

每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。oracle角色(role)就是一组权限(privilege
)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。
一个用户也可以直接给其他用户授权。

01、查询oracle用户、权限、及角色

# 1.查看所有用户:
select * from dba_users;
select * from all_users;
select * from user_users;

# 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
select * from dba_sys_privs;
select * from user_sys_privs;
 
# 3.查看角色(只能查看登陆用户拥有的角色)所包含的权限
select * from role_sys_privs;

# 4.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;

# 5.查看所有角色:
select * from dba_roles;

# 6.查看用户或角色所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;
 
# 7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
select * from V$PWFILE_USERS

# 8. 查看某个用户的权限,如system, 助于oracle的用户名是全大写
select privilege from dba_SYS_privs where grantee='SYSTEM';

# 9. 查看当前登陆用户
show user

02. 删除用户

语法:drop user 用户名;
例子:drop user test;
若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。
语法:  drop user 用户名 cascade;
例子:  drop user test cascade;

03. 授权角色

oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.
1. 讲解三种标准角色:
# 1. connect role(连接角色)
--临时用户,特指不需要建表的用户,通常只赋予他们connect role. 
--connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
--拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他  数据的链(link)

# 2. resource role(资源角色)
--更可靠和正式的数据库用户可以授予resource role。
--resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

# 3. dba role(数据库管理员角色)
--dba role拥有所有的系统权限
--包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有
2. 授权命令
语法: grant connect, resource to 用户名;
例子: grant connect, resource to test;
3. 撤销权限
语法: revoke connect, resource from 用户名;
列子: revoke connect, resource from test;

04. 创建/授权/删除角色

除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。
# 1. 创建角色
语法: create role 角色名;
例子: create role testRole;

# 2. 授权角色
语法: grant select on class to 角色名;
列子: grant select on class to testRole;
注:现在,拥有testRole角色的所有用户都具有对class表的select查询权限

#3. 删除角色
语法: drop role 角色名;
例子: drop role testRole;
注:与testRole角色相关的权限将从数据库全部删除

05. 切换用户

connect user/passwrod;

06. 链接数据库

sqlplus 用户名/密码 【@host_string】【用户身份】
sqlplus sys/空格 as sysdba
以sys用户登录,必须指定身份为 as sysdba 或 as sysoper,普通用户可以不要指定身份。
可以不输入密码的原因,是需要操作系统管理员用户。

07.

查询数据库名:
select name,dbid from v$database;
或者
show parameter db_name;
查询实例名:
select instance_name from v$instance;
或者
show parameter instance_name;

参考:
http://www.itpub.net/thread-933461-1-1.html
https://blog.youkuaiyun.com/lx870576109/article/details/79081621
https://www.cnblogs.com/zfox2017/p/8555397.html
https://www.cnblogs.com/zyxnhr/p/11707334.html
https://www.cnblogs.com/binghe001/p/12950804.html
https://www.cnblogs.com/dynwings/p/6708816.html

CentOS 7环境下Oracle 11g离线安装依赖包完整解决方案 htmltable {th, td {th {pre {简介:在无网络环境的CentOS 7系统上安装Oracle 11g是一项具有挑战性的任务,需预先准备所有必要的依赖包并进行精细化的手动配置。本文详细介绍了Oracle 11g在CentOS 7上的离线部署流程,涵盖关键依赖库的管理、系统参数调优、环境变量设置及安装执行步骤。通过构建本地依赖包集合(如gcc、kernel-devel、JDK、Perl等),结合rpm安装与手动软链接配置,确保数据库软件顺利运行。 阅读详情

相关推荐

EBSD数据转ABAQUS的inp文件实操指南

晶体塑性有限元模拟中,如何将材料微观组织表征数据转化为可计算的有限元模型,是连接实验与仿真的关键环节。EBSD技术能够获取材料表面的晶体取向、晶粒形貌和晶界分布信息,但这类数据需要经过格式解析、欧拉角转换、网格生成等步骤,才能被ABAQUS等有限元软件读取。通过将扫描点坐标映射为节点、按像素邻域生成单元,并将Bunge约定欧拉角变换为局部坐标系方向余弦,用户可以准确构建包含真实微观结构的inp文件模型。这一流程广泛应用于金属材料形变、织构演化及应力集中分析等研究场景,有效提升仿真结果与实验的一致性。围绕数据

weixin_42509513的博客 310

docker下使用oracle

Linux 上 docker 安装 oracle-xe-11g 记录 参考URL: https://hacpai.com/article/1492914187689 docker安装wnameless/oracle-xe-11g并运行(手写超详细) 参考URL: https://www.cnblogs.com/Jin520304/p/7884441.html 1: 在镜像站搜索 oracle, 第...

西京刀客 2131

从零搭建Synopsys EDA环境:Ubuntu系统下的完整安装与避坑指南

本文详细介绍了在Ubuntu系统下从零搭建Synopsys EDA环境的完整流程,包括系统配置、安装文件准备、核心工具安装、License配置及常见问题排查。特别针对数字IC设计场景,提供了VCS、Verdi、Design Compiler等EDA Tools的安装避坑指南和性能优化建议,帮助开发者高效搭建稳定的开发环境。

weixin_33738982的博客 491

使用 Docker 容器运行 Oracle 数据库

在实际开发中,大部分时间可能都在开发、测试和验证工作,有些时候我们需要快速使用一个临时 oracle 数据库来做开发或者验证工作,而又会因为 oracle 安装麻烦而烦恼。这种快速临时性需求,我们可以选中使用 docker 容器的方式运行一个 oracle 数据库,官方也给出了对应的镜像,包括 amd64 和 arm64 架构的都有。

小单的博客专栏 2831

手把手教你用MSPM0G3507和TB6612驱动MG513X电机(附完整代码与PID调速)

本文详细介绍了如何使用MSPM0G3507微控制器和TB6612驱动模块控制MG513X电机,包括硬件连接、软件配置、编码器测速和PID调速等关键步骤。通过完整的代码示例和PID算法实现,帮助开发者快速掌握电机驱动技术,适用于智能小车、机械臂等嵌入式项目。

weixin_30254435的博客 341

基于 LSTM 的船舶轨迹预测,单步预测

基于 LSTM 的船舶轨迹预测,单步预测

fyuhao的博客 1万+

docker安装Oracle

(待补充)##自定义备份(忽略表)

shiyq的技术小白博客 925

教你搞懂RT-Thread的移植和配置ENV工具环境

RT-Thread的移植和配置ENV工具环境

Troubadour~的博客 8262

使用docker安装oracle 11gR2实践

今天上午实践了一次使用docker镜像安装oracle的操作,不得不说,过程还是很艰辛的,这里记录一下,以作后续使用。   docker版本: 1.17.ce oracle版本:11.2.0 操作系统版本:ubuntu 16.04LTS 目录 第一步:docker下载镜像 第二步:启动镜像,挂载目录 第三步:进入镜像,删除原实例 第四步:创建新实例 xiuzhu 第④步:创建数...

Viogs的专栏 3807

高比例风电电力系统储能运行及配置研究(python&Matlab实现)

目录1 概述2 案例3 Matlab实现 3.1 题目及分析3.2 Matlab代码 4 七个题全部代码(值得学习) 下面我们先以第二题为例,然后给出Matlab代码:先考虑风电装机300MW直接替代机组3的发电功率曲线,观察系统功率平衡发生的变化情况。然后在此场景下,以最小发电成本为目标函数,将负荷分配给两台火电机组1、2和风电机组,绘制机组日发电计划图。再将风电装机容量作为一个决策变量,以最小发电成本为目标函数,求取最小发电成本对应的风电装机容量,绘制机组日发电计划图。1. 风电装机300MW、直接

weixin_46039719的博客 1740

YOLOv8 改进涨点 | 模块即插即用 直接可用

在目标检测任务中,注意力机制能够帮助模型聚焦于图像中的关键区域,显著提升检测精度。。创建模块代码注册模块修改任务解析tasks.py创建YAML配置文件模块核心优势适用场景计算开销SOCA捕获二阶统计信息,增强通道间相关性需要精细特征区分的场景中等SK自适应多尺度核选择多尺度目标检测中等偏高显式特征聚集-分配机制全局上下文建模中等A2-Net双线性注意力,高效全局交互复杂场景理解中等偏高CrissCross线性复杂度全局上下文高分辨率输入,长距离依赖较低。

u012133341的博客 2257

使用docker快速安装Oracle11gR2

使用docker快速安装Oracle11gR20. 前言1. 安装及配置docker2. 使用docker下载Oracle11g安装包镜像3. 使用安装运行Oracle11g4. 配置Oracle11g5. 使用远程工具连接Oracle11g 0. 前言 最近在学习使用Oracle, 在自己安装的过程中, 尝试了各种方式安装Oracle, 经过各种平台和安装方式的尝试, 最终还是认为使用docker安装Oracle最为快捷方便, 现将整体的安装过程整理出来, 与大家一起学习 ! 我使用的安装环境是Linux

新生代农民工Steven 3929

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

在Centos7上使用Docker 安装Oracle

这篇博文讲解如何在Centos7 上使用Docker 简易安装Oracle.

极客星云-优快云博客 1822

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

CentOS7下 docker安装官方版oracle

本文记录了在docker里安装官方Oracle11R2的数据库,非helowin版,你懂得。helowin这个版本的文章,跟转疯了似的,纯复制粘贴过来就发表一篇文章。今天我找寻多方资料,并安装了一份官方的Oracle11R2的版本,记录一下,后续打算做个镜像,玩一玩。

起个破名真费劲..的博客 747

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

docker安装的oracle打开慢,使用 docker 快速安装 oracle 11g

前言我们在手动安装oracle数据库时,安装步骤纷繁复杂,耗时较长在此介绍如何使用docker快速安装oracle 11g一、docker 及其安装环境操作系统:[root@centos7 ~]#cat /etc/redhat-releaseCentOS Linux release 7.7.1908 (Core)docker 版本:[root@centos7 ~]#docker -vDocker ...

weixin_28958727的博客 1045

【Linux】centos7通过docker安装oracle 11g

纯净的linux安装过程 安装docker yum update yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum list docker-...

非正常人研究室 980

centos7 docker安装_centos7使用docker安装oracle11g

docker搜索oracle11g镜像选择安装 jaspeen/oracle-11g,等待下载安装完成docker pull jaspeen/oracle-11g查看下载好的镜像这个镜像没有直接安装好oracle,他帮我们配置好了环境,提供了安装脚本,我们只需要按照要求把oracle的安装目录配置好,启动镜像,即可准备oracle 11g安装文件从oracle 官网 下载所需要的安装包,这里我们以...

weixin_39541212的博客 310

Centos7远程安装Oracle11g

相关链接与资源: sqldevelper(各种操作系统的oracle客户端) http://www.oracle.com/technetwork/cn/developer-tools/sql-developer/downloads/index.html oracle11g r2下载地址: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html centos7

weixin_42264897的博客 407

Linux上Oracle 11g安装步骤图解(超详细图文教程)附带导入数据和新建数据库教程

首先本文采用Docker方式快速在Linux上安装 目录 1.安装Docker容器 (1)登陆服务器,输入命令安装Docker容器 (2)安装完成后运行下列代码如果弹出Docker版本则表示安装成功 (3)启动Docker并设置跟随系统开机启动 (4)由于国内系统拉取国外镜像缓慢所以我们在开始安装Oracle之前,需要配置一下阿里云加速镜像服务 2.Docker拉取镜像 (1)拉取镜像 (2)上传Oracle安装包至服务器 (3)上传完成后我们使用命令行进入文件夹解压文件 3.Oral

u010840685的博客 7256

Docker--安装Oracle11g

docker 及其安装环境 操作系统: [root@centos7 ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) docker 版本: [root@centos7 ~]# docker -v Docker version 1.13.1, build 7f2769b/1.13.1 docker 安装方式: yum update && yum -y install docker docker 使用详细

qq_40179479的博客 411

docker安装oracle11g

总结了一下各位大神的博客,希望能帮到你。 环境是centos7。 链接:https://pan.baidu.com/s/1P8VHtzZDjc8X2fHJVPebZg 提取码:ubqw docker的安装可以参照以下文档。 链接:https://pan.baidu.com/s/1agQrnMnKvzok5QES7V6Ejg 提取码:e7i8 1.下载oracle。将下载好的传入linux 链接:https://pan.baidu.com/s/1yEBCa95gUWp4uf1QW16-ug 提取码

qq_38487054的博客 637

epm安装配置 oracle_centos7使用docker安装oracle11g

docker搜索oracle11g镜像选择安装 jaspeen/oracle-11g,等待下载安装完成docker pull jaspeen/oracle-11g查看下载好的镜像这个镜像没有直接安装好oracle,他帮我们配置好了环境,提供了安装脚本,我们只需要按照要求把oracle的安装目录配置好,启动镜像,即可准备oracle 11g安装文件从oracle 官网 下载所需要的安装包,这里我们以...

weixin_39934640的博客 126

Linux(CentOS 7.5):通过docker安装oracle11g

目录 一、安装环境: 二、安装步骤: 三、异常处理 四、参考资料 一、安装环境: 1、CentOS 7.5 服务器一台。可用虚拟机代替。(虚拟机建议使用:VMware,自行百度,此处不再赘述) 2、yum源配置为阿里云。(可参考:https://www.cnblogs.com/enduo/p/9078313.html) 二、安装步骤: 1、安装 unzip (若有,则跳过) yum install -y unzip ...

qq_41306795的博客 754

Oracle11gR2在CentOS7.9的最小化安装指南:8G内存如何调优内核参数?

本文详细指导如何在仅有8GB内存的CentOS 7.9最小化系统上部署Oracle 11gR2数据库。核心内容聚焦于针对小内存环境的内核参数深度调优,特别是kernel.shmall、kernel.shmmax等关键参数的精准计算与配置,并提供从系统准备、依赖安装到静默部署及后续优化的完整实战方案。

cola5的博客 191

docker里面安装oracle,docker中安装oracle

本文主要讲述如何使用docker安装oracle,安装步骤基于已经在环境中安装好docker的前提下。如需知道如何安装docker,请自行百度。 本文中描述的oracle安装是在centos7.5环境中运行docker, 挂载安装路径。1. 准备工作下载oracle安装脚本的镜像:docker pull jaspeen/oracle-11g下载oracle11g安装文件,可以自行百度去官方下...

weixin_34293510的博客 389
上一篇: 【部署】gunicorn使用
下一篇: 驱动开发及调试环境搭建
YPFeime
博客等级 码龄9年 19粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值