--Centos7.2 安装 oracle 12C
1、修改主机名
[root@localhost ~]# hostnamectl set-hostname DBSNC.LOCAL 
[root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.222 DBSNC.LOCAL
重启 revboot




2、配置Yum源
[root@dbsnc mnt]# mount -t auto /dev/cdrom /mnt/cdrom/


/etc/yum.repos.d
[Centos7]
name=Centos7
baseurl=file:///mnt/cdrom/
gpgcheck=0
enabled=1
gpgkey=file:///mnt/cdrom/rpm-gpg/RPM-GPG-KEY-CentOS-7


3、root身份安装依赖包:
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc 
glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 
libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp


4、建立用户和组:
groupadd oinstall  
groupadd dba  
groupadd oper  
useradd -g oinstall -G dba,oper oracle 
echo "oracle" | passwd --stdin oracle #oracle用户的登录密码


5、创建安装目录:
mkdir -p /orcl/app/oracle/product/12.1.0/db_1  
chown -R oracle:oinstall /orcl/app  
chmod -R 775 /orcl/app


6、修改内核参数vi /etc/sysctl.conf,添加:
fs.aio-max-nr = 1048576  
fs.file-max = 6815744  
kernel.shmall = 2097152  
kernel.shmmax = 1200000000    
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


7、改文件限制:vi /etc/security/limits.conf,添加:
oracle soft nproc 2047  
oracle hard nproc 16384  
oracle soft nofile 1024  
oracle hard nofile 65536  
oracle soft stack 10240 


以及vi /etc/pam.d/login,添加:


session required pam_limits.so




8、修改ulimit:vi /etc/profile,添加:


if [ $USER = "oracle" ]; then  
if [ $SHELL = "/bin/ksh" ]; then  
ulimit -p 16384  
ulimit -n 65536a  
else  
ulimit -u 16384 -n 65536  
fi  
fi  


9、修改环境变量。vi ~oracle/.bash_profile,添加:


ORACLE_BASE=/orcl/app/oracle  
ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1  
ORACLE_SID=orcl  
export ORACLE_BASE ORACLE_HOME ORACLE_SID  
PATH=$ORACLE_HOME/bin:$PATH  
export PATH  
 


用yum remove *openjdk* 把系统自带的openjdk卸载,再安装sun jdk:rpm -ivh jdk-8u101-linux-x64.rpm。(openjdk环境安装oracle GUI会报class not found的错)。然后$>java -version检查一下安装是否成功。
上述工作完成后,建议重启系统。


以oracle用户登录,开始安装:
# su - oracle  
$ cd /orcl/app/oracle  
$ unzip linuxamd64_12102_database_se2_1of2.zip  
$ unzip linuxamd64_12102_database_se2_2of2.zip  
$ export LANG="en_US"  
$ cd /orcl/app/oracle/database  
$ ./runInstaller 


注:/orcl/app/oracle/下是2个目录:product和database。解压后的安装文件放在database下。


然后就会出现安装界面,配置过程从略。需要注意的是字符集要选择unicode。
启动oracle:
#su - oracle #切换到 oracle 用户且切换到它的环境
$lsnrctl status #查看监听及数据库状态
$lsnrctl start #启动监听
$sqlplus / as sysdba #以 DBA 身份进入 sqlplus 


停止oracle:
#su - oracle #切换到 oracle 用户且切换到它的环境
$lsnrctl stop #停止监听


SQL> select BANNER from v$version;


BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
PL/SQL Release 12.2.0.1.0 - Production
CORE12.2.0.1.0Production
TNS for Linux: Version 12.2.0.1.0 - Production
NLSRTL Version 12.2.0.1.0 - Production


在安装过程中,对Oracle12c 容器数据库不清楚,查看了相关资料学习了一下:
可插入数据库的概念:
Oracle Multitenant Container Database(CDB),即多租户容器数据库,是Oracle 12C引入的特性,指的是可以容纳一个或者多个可插拔数据库的数据库,这个特性允许在CDB容器数据库中创建并且维护多个数据库,
在CDB中创建的数据库被称为PDB,每个PDB在CDB中是相互独立存在的,在单独使用PDB时,与普通数据库无任何区别。CDB根容器数据库的主要作用就是容纳所有相关的PDB的元数据,以及在CDB中对所有的PDB进行管理。


多租户环境的组成
--ROOT 
Root容器数据库,是CDB环境中的根数据库,在根数据库中含有主数据字典视图,其中包含了与Root容器有关的元数据和CDB中所包含的所有的PDB信息。在CDB环境中被标识为CDB$ROOT,每个CDB环境中只能有一个Root容器数据库。


--CDB seed 
CDB seed为PDB的种子,其中提供了数据文件,在CDB环境中被标识为PDB$SEED,是创建新的 PDB的模板,你可以连接PDB$SEED,但是不能执行任何事物,因为PDB$SEED是只读的,不可进行修改。


--PDBs 
PDB数据库,在CDB环境中每个PDB都是独立存在的,与传统的Oracle数据库基本无差别,每个PDB拥有自己的数据文件和objects,唯一的区别在于PDB可以插入到CDB中,以及在CDB中拔出,并且在任何一个时间点之上PDB必须拔出或
者插入到一个CDB中,当用户链接PDB时不会感觉到根容器和其他PDB的存在。


确认是否选择了CDB
SQL> select name,cdb from v$database;


NAME  CDB
--------- ---
ORCL  NO


如果是CDB的数据库,那么在创建用户的时候语法应该是 create user c##test identified by test;


个人理解:实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。
Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB),即实例与数据库可以是一对多的关系。


09-26 22:57