云主机安装oracle

 本例

        通过SSH远程连接云主机,上传oracle11g安装包,在centos6.5上无图形化界面静默安装oracle11g。

1、 安装依赖包(root用户) 

yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel

-----oracle12.2.0.1我是用下面这个-----

yum install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel

 

2、设定swap空间(root用户)

1.##在/home/下生成swap文件 设定大小2GB

  dd if=/dev/zero of=/home/swapfile bs=1M count=2048

2.##设定使用/home/swapfile交换文件

  mkswap /home/swapfile

3.##启用交换分区

  swapon /home/swapfile

4.##编辑文件/ect/fstab 
 
  vi /etc/fstab

 ##以便引导系统时启用交换文件,文件最下方插入
 
  /home/swapfile swap swap defaults 0 0

 

3、添加oracle用户(root)

##创建oinstall、dba组 将oracle用户加入组 修改并设定oracle用户密码

  groupadd oinstall
  groupadd dba
  useradd -g oinstall -G dba oracle  ---用户已存在可以跳过
  passwd oracle   --- 用户已存在可以跳过
如果用户已存在 要看这个oracle 是否归属于 oinstall 和 dba
如果没有 要用下面的命令,为这个用户添加组 不过组要先存在

usermod -a -G dba oracle
usermod -a -G oinstall oracle



 

4.修改内核参数 (root)

##编辑文件/etc/sysctl.conf  

  vi /etc/sysctl.conf

##配置文件内加入 修改以下参数。如果没有可以自己添加,如果默认值比参考值大,则不需要修改。

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 = 1048586


##执行命令sysctl使其自检并生效

  sysctl -p

 

5、修改用户资源限制(root)

## 1.修改/etc/security/limits.conf配置文件

    vi /etc/security/limits.conf

## 2.配置文件下方加入

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240



## 3.修改/etc/pam.d/login配置文件

    vi /etc/pam.d/login
  
## 4.配置文件内加入

session required /lib/security/pam_limits.so
session required pam_limits.so

 

 

6、创建安装目录(root)

##创建安装目录  /usr/local/oracle     /usr/local/oraInventory     /usr/local/oradata  并赋予组用户及权限
  

  mkdir -p /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/
  chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/
  chmod -R 775 /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/

 

 

7、创建oraInst.loc文件(root)

##创建/etc/oraInst.loc文件

  vi /etc/oraInst.loc

##文件内加入以下内容

inventory_loc=/usr/local/oraInventory
inst_group=oinstall

##保存退出后执行以下命令。设定该文件的用户组及权限。

  chown oracle:oinstall /etc/oraInst.loc
  chmod 664 /etc/oraInst.loc

 

8、通过上传zip文件并解压(root)

下载地址:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html

##解压缩命令
    cd /home
    unzip linux.x64_11gR2_database_1of2.zip
    unzip linux.x64_11gR2_database_2of2.zip

##待解压完毕后会生成文件夹/home/database,这个目录要看自己解压缩后的路径,因人而异 修改其用户组及权限此处直接使用777

    chmod 777 /home/database
    chown -R oracle.oinstall /home/database

 

9、准备oracle安装应答模板文件db_install.rsp文件(root)。

## 1、该文件默认存放在解压后的安装包内,也就是本例中/home/database/response下,
##   将oracle静默安装所需应答文件全部拷贝至 /usr/local/oracle文件夹下

    cp /home/database/response/* /usr/local/oracle/

## 2、修改安装所需的所有应答文件的所属组及权限

    chown  oracle:oinstall /usr/local/oracle/*.rsp
    chmod 755 /usr/local/oracle/*.rsp

## 3、配置db_install.rsp文件

    vi /usr/local/oracle/db_install.rsp 

## 4、文件内修改相应的参数配置如下:

   oracle.install.option=INSTALL_DB_SWONLY             //安装类型,只装数据库软件
   ORACLE_HOSTNAME=db                             //主机名称(命令hostname查询)
   UNIX_GROUP_NAME=oinstall                       // 安装组
   INVENTORY_LOCATION=/usr/local/oraInventory          //INVENTORY目录(**不填就是默认值,本例此处需修改,因个人创建安装目录而定)
  SELECTED_LANGUAGES=en,zh_CN                       // 选择语言
  ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1      // oracle_home *路径根据目录情况注意修改 本例安装路径/usr/local/oracle
  ORACLE_BASE=/usr/local/oracle                           // oracle_base *注意修改
  oracle.install.db.InstallEdition=EE                  // oracle版本
  oracle.install.db.isCustomInstall=false              //自定义安装,否,使用默认组件 oracle 12.2不需要
  oracle.install.db.DBA_GROUP=dba                      //dba用户组
  oracle.install.db.OPER_GROUP=oinstall                //oper用户组
**
oracle.install.db.BACKUPDBA_GROUP=oinstall            //oracle 12.1、12.2需要配置
oracle.install.db.DGDBA_GROUP=oinstall //oracle 12.1、12.2 需要配置
oracle.install.db.KMDBA_GROUP=oinstall              //oracle 12.1、12.2 需要配置
**
  oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型   oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName   oracle.install.db.config.starterdb.SID=orcl         //SID(**此处注意与环境变量内配置SID一致)   oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)   oracle.install.db.config.starterdb.password.ALL=oracle //设定所有数据库用户使用同一个密码   SECURITY_UPDATES_VIA_MYORACLESUPPORT=false       //(手动写了false)   DECLINE_SECURITY_UPDATES=true                 // **注意此参数 设定一定要为true

 

10、设置oracle用户环境

## 由root切换至创建好的oracle用户

  su - oracle
## 修改该用户的用户配置文件

  vi .bash_profile

## 文件内加入并修改至以下内容

export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl    
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

## 保存退出后执行source命令立即生效。

  source .bash_profile

 

11、在oracle用户下开始安装。

## 执行命令。

/home/database/./runInstaller -silent -force -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp

##参数说明  
  /home/database是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。
  runInstaller 是主要安装脚本
  -silent 静默模式
  -force 强制安装
  -ignorePrereq忽略warning直接安装。
  -responseFile读取安装应答文件。

 

12、xshell另起窗口并以root登陆。

通过 watch -d -n 2 'du -sh /usr/local/oracle' 监测oracle安装目录是否变化。或者直接tail -f命令监测安装log日志。不赘述。 log日志在 oraInventory底下

 

13、等待安装编译直至出现以下内容,在新创建的root窗口内执行以下提示内的脚本,

/usr/oracle/oraInventory/orainstRoot.sh  

/usr/oracle/product/11.2.0/db_1/root.sh

#-------------------------------------------------------------------

  /usr/oracle/oraInventory/orainstRoot.sh

  /usr/oracle/product/11.2.0/db_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.

#-------------------------------------------------------------------

 

以上转载自:https://www.cnblogs.com/colmeluna/p/5686142.html


 

13.1用oracle用户登录配置监听

netca -silent -responseFile /usr/local/oracle/netca.rsp

在安装监听的的时候 报了以下错误:

Oracle Net Configuration Assistant failed ;Returning is Port 1521 free: false

好像是操作系统不同。 我把/etc/hosts 里面 多余的去掉 就可以了。去掉的这些

127.0.0.1 ecs-cf3b.novalocal ecs-cf3b
127.0.0.1 ecs-cf3b.novalocal ecs-cf3b.novalocal
127.0.0.1 ecs-test01.novalocal ecs-test01.novalocal
127.0.0.1 ecs-tst0001.novalocal ecs-tst0001.novalocal
127.0.0.1 ecs-c264.novalocal ecs-c264.novalocal
127.0.0.1 ecs-e60a.novalocal ecs-e60a.novalocal
127.0.0.1 ecs-ce99.novalocal ecs-ce99.novalocal
127.0.0.1 ecs-ccc5-0019.novalocal ecs-ccc5-0019.novalocal

 

 

 

出现下图情况时,则需要配置DISPLAY变量,配完之后重新netca:

export DISPLAY=localhost:0.0

 

成功运行后,会在/usr/local/oracle/product/11.2.0/db_1/network/admin 中生成listener.ora和sqlnet.ora两个文件。 

 

13.2查看监听端口:

netstat -tnulp | grep 1521

 

14.静默安装数据库
修改仅安装数据库的响应文件/usr/local/oracle/etc/dbca.rsp 这个文件在linux安装包里有,或者第9步里复制的

cp /home/oracle/database/response/dbca.rsp /usr/local/oracle

GDBNAME="orcl.java-linux-test" //78 行 全局数据库的名字=SID+主机域名  可以不改
SID="orcl" //149行 SID
CHARACTERSET="AL32UTF8" //415行 编码    可以不改
NATIONALCHARACTERSET="UTF8" //425行 编码  可以不改

templateName=General_Purpose.dbc        12.2需要修改这个参数 否则会出现这个报错:[FATAL] [DBT-10503] Invalid template file specified.

 

15.开始安装数据库(oracle用户--整个过程要等二十分钟)  可以通过这边,创建第二个数据库实例

$ORACLE_HOME/bin/dbca -silent -responseFile /usr/local/oracle/dbca.rsp
12.2.0.1使用下面这个命令
$ORACLE_HOME/bin/dbca -silent -createDatabase -responseFile /data/oradata/dbca.rsp --否则会出现说-silent这个参数非法

这里的密码是配置的是oralce-SYS 用户的密码 

 

完成后如下图

 

16.建库后实例检查

ps -ef | grep ora_ | grep -v grep | wc -l
ps -ef | grep ora_ | grep -v grep

 

17.监听检查

lsnrctl status

 

**如果建了多个数据库实例 怎么同时启动多个数据实例呢?

配置监听:

在 /oracle/oracle/product/12.2.0/db_1/network/admin/listener.ora  下增加以下内容

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl12c.us.oracle.com)
      (ORACLE_HOME = /oracle/oracle/product/12.2.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC = 
      (GLOBAL_DBNAME = orcl12c2.us.oracle.com)
      (ORACLE_HOME = /oracle/oracle/product/12.2.0/db_1)
      (SID_NAME = orcl12c)
    )
 )

 

重启监听

lsnrctl stop
lsnrctl start

 

再次检查监听状态,出现如下 代表监听启动了

lsnrctl status

 

 

 重启数据库,后两个实例都可以登录了

shutdown immediate

startup

 

 修改数据库编码

sqlplus / as sysdba

Oracle Server端字符集查询
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK 
由此可以看出字符集为ZHS16GBK

 

 

如果startup报错了 可以使用

可以使用  alter database open resetlogs;


Server端字符集修改
将数据库启动到RESTRICTED模式下做字符集更改:
$ sqlplus "/as sysdba"
SQL> conn /as sysdba;
SQL> shutdown immediate;

SQL> startup mount;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> alter database character set INTERNAL_USE UTF8;     或者   alter database character set INTERNAL_USE ZHS16GBK;
SQL> shutdown immediate;
SQL> startup;
SQL> exit;

 

 

 

 

18.连接数据库

sqlplus / as sysdba

 

 19.创建用户,指定密码
CREATE USER 用户 IDENTIFIED BY 用户密码;

 

19.1 创建临时表空间和表空间

create temporary tablespace gsiomc_NOTIFYDB_TEMP tempfile '${ORACLE_HOME}\oradata\NOTIFYDB_TEMP.bdf' size 100m reuse autoextend on next 20m maxsize unlimited;


create tablespace gsiomc_NOTIFYDB datafile '${ORACLE_HOME}\oradata\notifydb.dbf' size 100M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);

 

20.赋予权限
grant connect,resource,dba to 用户;
grant unlimited tablespace to 用户;
grant create database link to 用户;
grant select any sequence,create materialized view to 用户;

 

grant unlimited tablespace to 用户;//授予不限制的表空间 

grant select any table to 用户;//授予查询任何表 

grant是关键字,select any table是权限,to后面是用户账号

 

21.创建测试表
create table test_V1(
  PROJECT_ID NUMBER(10) primary key,
  PROJECT_NAME varchar2(20) not null,
);

 =================================================================

*修改连接数------以下命令都在sql>下运行

sqlplus / as sysdba

show parameter processes --查看最大连接

processes --即为最大连接数

alter system set processes = 300 scope = spfile;--修改最大连接数为300:

shutdown immediate;
startup;--重启数据库

==================================================================

posted @ 2018-04-04 22:33  林被熊烟岛  阅读(683)  评论(0)    收藏  举报