linux安装oracle数据库
大致步骤:
1、linux初始配置(内存,交换空间等)
2、安装oracle需要的依赖
3、linux创建所需的oracle操作系统组和用户
4、修改linux内核参数
5、修改oracle用户限制
6、设置oracle用户环境变量
7、上传并解压oracle安装文件
8、修改静默安装Oracle软件脚本参数配置(装软件)
9、修改静默安装数据库(创建数据库)
10、修改oracle用户启动配置文件,启动/关闭
一、linux初始配置(内存,交换空间等)
1.硬件检测:
物理内存不少于1G
硬盘可以空间不少于5G
swap分区空间不少于2G
首先检查物理内存的大小[free]
grep MemTotal /proc/meminfo
检查交换分区内存大小
grep SwapTotal /proc/meminfo
分配交换空间,oracle的要求交换分区的大小一般为物理内存大小的一点五到两倍
在root用户下
dd if=/dev/zero of=/swapadd bs=1024 count=2825586
mkswap /swapadd
swapon /swapadd
在/etc/fstab添加,否则重启系统虚拟空间会消失
/swapadd swap swap defaults 0 0
或
echo "/swapadd swap swap defaults 0 0" >> /etc/fstab
再看看是否分配完成,检查交换分区内存大小
grep SwapTotal /proc/meminfo
~~(修改主机名 hostnamectl set-hostname myhostname)~~
二、安装oracle需要的依赖
yum -y install binutils compat-libstdc++-33 compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
三、创建所需的操作系统组和用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
设置oracle用户密码
passwd oracle
然后就一直输入密码假设为 oracle 它可能会提示你不符合oracle规定 别理他
四、修改linux内核参数
在/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
参数解析:
{
shmmax=物理内存*80%*80%,单位是字节
kernel.shmmax:表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存的一半,不过大一点也没关系,这里设定的为4GB,即“4294967295/1024/1024/1024=4G”。
kernel.shmmin:表示单个共享内存段的最小值,默认为1byte
kernel.shmall:表示整个系统范围内可用共享内存页的总量,单位是页(page),在32位系统上一页等于4kB,也就是4096字节。计算公式是:shmmax/PAGE_SIZE
kernel.shmmni:表示整个系统范围内内存段的最大数量,一般为4096.
ip_local_port_range :表示端口的范围。在监听器帮助客户端进程和服务器进程建立连接时,会用到指定范围内的端口。
kernel.sem :表示设置的信号量,这4个参数内容大小固定。
net.core.rmem_default :表示接收套接字缓冲区大小的缺省值(以字节为单位)。
net.core.rmem_max :表示接收套接字缓冲区大小的最大值(以字节为单位)
net.core.wmem_default :表示发送套接字缓冲区大小的缺省值(以字节为单位)。
net.core.wmem_max :表示发送套接字缓冲区大小的最大值(以字节为单位)。
}
修改后,使设置生效
/sbin/sysctl -p
五、修改用户限制
在/etc/security/limits.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
在/etc/pam.d/login 文件中,使用文本编辑器或vi命令增加或修改以下内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
在/etc/profile 文件中,使用文本编辑器或vi命令增加或修改以下内容
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
六、设置oracle用户环境变量
创建安装目录(可根据情况,选择比较多空间的目录创建)
mkdir -p /home/oracle/app/
chown -R oracle:oinstall /home/oracle/app/
chmod -R 775 /home/oracle/app/
设置oracle环境变量
切换用户
su oracle
修改vi ~/.bash_profile
在最后加上以下内容
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_SID=orcl
使设置生效
source /home/oracle/.bash_profile
七、上传并解压oracle安装文件
将oracle文件上传至/home/oracle/解压
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
八、修改静默安装Oracle软件脚本参数配置(装软件)
vim显示行数:进入vim后命令 :set nu
修改安装Oracle软件的响应文件/home/oracle/database/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY //29 行 安装类型 1.只装数据库软件 2.安装数据库软件并建库 3.升级数据库
ORACLE_HOSTNAME=java-linux-test //37 行 主机名称
UNIX_GROUP_NAME=oinstall //42 行 安装组
INVENTORY_LOCATION=/home/oracle/app/oracle/oraInventory //47 行 INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN,zh_TW //78 行 选择语言
ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/db_1//83 行 oracle_home
ORACLE_BASE=/home/oracle/app/oracle //88 行 oracle_base
oracle.install.db.InstallEdition=EE //99 行 oracle版本,企业版,标准版,标准版1
oracle.install.db.isCustomInstall=true //108行 自定义安装
oracle.install.db.DBA_GROUP=dba //142行 dba用户组
oracle.install.db.OPER_GROUP=oinstall //147行 oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl //165行 globalDBName
oracle.install.db.config.starterdb.SID=orcl //170行 SID
oracle.install.db.config.starterdb.memoryLimit=512 //192行 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //233行 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true //385行 设置安全更新
进行静默安装Oracle软件
cd database
【./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq】
./runInstaller -silent -force -responseFile /home/oracle/database/response/db_install.rsp -ignorePrereq
==安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。(自行排除错误)==
安装完切换root用户运行
/home/oracle/app/oracle/oraInventory/orainstRoot.sh
/home/oracle/app/oracle/product/11.2.0/db_1/root.sh
修改 oracel 用户.bash_profile
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/db_1/
export PATH=$ORACLE_HOME/bin:$PATH
静默配置网络
$ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp
九、修改静默安装数据库(创建数据库)
修改仅安装数据库的响应文件/home/oracle/etc/dbca.rsp
GDBNAME="orcl.oracle" //78 行 全局数据库的名字=SID 主机域名
SID="orcl" //149行 SID
SYSPASSWORD = "oracle" //190行 SYSPASSWORD
SYSTEMPASSWORD = "oracle" //200行 SYSTEMPASSWORD
CHARACTERSET="AL32UTF8" //415行 编码
NATIONALCHARACTERSET="UTF8" //425行 编码
进行静默安装数据库
$ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp
十、修改oracle用户启动配置文件,启动/关闭
vi /etc/oratab
orcl:/home/oracle/app/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
这样就可以通过dbstart 启动此实例,监听器。
dbstart $ORACLE_HOME
此时所有oracle的进程关闭,监听器也停止。
dbshut $ORACLE_HOME
再次查看监听器状态。
lsnrctl status
如果使用归档日志
参考链接:
1)http://blog.sina.com.cn/s/blog_e85f09cb0102w507.html
2)https://www.cnblogs.com/it1992/p/9468124.html
其它
Oracle 操作:
查看文件位置
select name from v$datafile;
select name from v$tempfile;
创建临时表空间
--create temporary tablespace 【名称】 tempfile 'C:\user_temp.dbf【位置】' size 50m autoextend on next 50m maxsize 20480m extent management local;
create temporary tablespace myoracle_temp_space tempfile '/home/oracle/app/oracle/oradata/orcl/myoracle_temp_space.dbf' size 10m autoextend on next 32m maxsize 500m extent management local;
创建表空间
--CREATE TABLESPACE 【名称】 LOGGING DATAFILE '【位置】'SIZE 10M AUTOEXTEND ON NEXT 32M MAXSIZE 500M EXTENT MANAGEMENT LOCAL;
CREATE TABLESPACE myoracle_space LOGGING DATAFILE '/home/oracle/app/oracle/oradata/orcl/myoracle_space.dbf'SIZE 10M AUTOEXTEND ON NEXT 32M MAXSIZE 500M EXTENT MANAGEMENT LOCAL;
表空间重命名
alter tablespace myoracle_space rename to myoracle_space2;
创建用户
create user myoracle identified by myoracle;
修改默认表空间
alter user myoracle default tablespace myoracle_space;
alter user myoracle default tablespace myoracle_space temporary tablespace myoracle_temp_space;
//查看用户
select username,default_tablespace,account_status from dba_users;
//解锁用户
alter user myoracle account unlock/lock;
//授权
grant connect,resource,dba to myoracle;
删除用户语句
drop user 用户名 cascade;
删除空的表空间,但是不包含物理文件
drop tablespace tablespace_name;
删除非空表空间,但是不包含物理文件
drop tablespace tablespace_name including contents;
删除空表空间,包含物理文件
drop tablespace tablespace_name including datafiles;
删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;
如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;
本地链接oracle
客户的编码【添加到环境变量NLS_LANG=AMERICAN_AMERICA.AL32UTF8】
用到instantclient_12_1文件夹【添加到path环境变量】
链接工具PLSQldev8.0配置指向instantclient_12_1
新建tnsnames.ora内容【添加到环境变量TNS_ADMIN=D:\Software\Oralce】
MYORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 119.23.60.163)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
查看字符集
select userenv('language') from dual;
修改字符集?
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 你要的编码集;#比如ZHS16GBK
SQL> shutdown immediate;
SQL> startup;