CentOS6.5下安装Oracle11g
2015-08-26 14:38
661 查看
在Linux下安装Oracle
一、安装前系统准备
1. 修改主机名
#sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=oracledb/" /etc/sysconfig/network2.添加主机名与IP对应记录
# vi /etc/hosts192.168.1.160 oracledb
3.关闭Selinux
#sed -i"s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
# setenforce 0
4.安装依赖包
yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
5.创建用户和组
[root@oracledb ~]# groupadd oinstall[root@oracledb ~]# groupadd dba
[root@oracledb ~]# useradd -g oinstall -G dba
oracle
[root@oracledb ~]# passwd oracle
6.创建安装目录
[root@oracledb ~]# mkdir -p/opt/oracle/app/
[root@oracledb ~]# mkdir -p /opt/oracle/oradata/
[root@oracledb ~]# chmod 755/opt/oracle/
[root@oracledb ~]# chmod 775/opt/oracle/app/
将该目录的所有者设置为oracle : [root@oracledb ~]# chown oracle.oinstall -R
/opt/oracle/
7.修改内核参数
#vim/etc/sysctl.conffs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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 -p ,即可马上生效。
运行 #sysctl -p 命令报错
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
解决方法,执行如下命令:
#modprobe bridge
#lsmod|grep bridge
8. 修改用户的SHELL的限制
#vim/etc/security/limits.conf在最后面添加如下内容:
oracle soft
nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
# vi/etc/pam.d/login
session required
pam_namespace.so #下面添加一条pam_limits.so
session required pam_limits.so
# vi/etc/profile
在末尾添加如下语句:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
9.设置oracle的环境变量
切换到oracle用户下:# vi ~/.bash_profile
umask 022
export ORACLE_BASE=/opt /oracle/app
export
ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=zydev
export
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
[oracle@oracledb ~]$ source
.bash_profile #立即生效
二、
安装oracle
1.上传文件
上传文件到/usr/local/src下2.解压文件
[root@oracledb~]# unzip /usr/local/src/linux.x64_11gR2_database_1of2.zip[root@oracledb~]# unzip /usr/local/src/linux.x64_11gR2_database_2of2.zip
3.安装向导
解决字符集问题export LANG=en_US
/usr/local/src/database# ./ runInstaller
#输入接受一些安全问题的邮件地址,选择不接受
# 选择安装数据库软件并创建数据,也可以选择第二项仅安装数据库软件
#选择服务器版本
#单实例数据库
#高级模式安装
#添加支持的语言
#选择要安装的版本
#选择你要安装的服务
#安装数据库目录
#数据库名及服务名 #开启自动内存管理 #设置默认编码为UTF8
#启用Oracle企业管理控制台OEM
#选择数据库文件目录
#自动备份设置
#设置数据库用户名和密码
#授权的组
#检查Oracle一些安装要求,包都已经安装,直接忽略
#开始安装
安装完成后,会出来一个对话框,提示使用root用户执行这两个脚本/opt/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
opt/oracle/oraInventory/orainstRoot.sh
至此整个数据库安装完成。
三、oracle基本知识
1.Oracle常用命令
[root@oracledb ~]# su –oracle[oracle@oracledb ~]# sqlplus / as sysdba
SQL> startup #启动数据库实例
SQL> shutdown immediate #关闭数据库实例
SQL> select * from tab; #查看所有表
SQL> select name from v$datafile #查看数据库存放目录
SQL> show parameter service #查看服务名
SQL> select * from v$instance; #查看实例名
SQL> select name from v$database; #查看数据库名
SQL> select * fromdba_users; #查看所有用户信息
SQL> select username,password from dba_users; #只查询用户和密码
SQL> select * fromv$pwfile_users; #查看具有sysdba权限的用户
SQL> select * fromdba_ustats; #查看当前用户信息
SQL> select * fromuser_sys_privs #查看当前用户系统权限
SQL> select * fromuser_role_privs #查看当前用户角色
SQL> select * fromdba_sys_privs #查看指定用户所具有的系统权限
SQL> select * fromv$version #查看oracle版本
SQL> select * fromuser_views #查看视图信息
[root@oracledb ~]# lsnrctl start #开启远程监听端口
###远程连接信息
2.
oracle用户
#sys和system用户区别1>.存储数据重要性不同
sys存放数据字典的基表和视图,由数据库自己维护,任何用户都不能手动更改,sys用户拥有dba、sysdba、sysoper等角色或权限,是oracle权限最高用户。
而system用户只存放一些一级的内部数据,如oracle的一些特性或工具的管理信息。用于数据库管理,System用户拥有普通dba角色权限。
2>.权限不同
sys用户具有sysdba或sysoper系统权限,登录em也只能用这两个身份,不能用normal。
system用户只能用normal身份登录em,除非你对它授予了sysdba的系统权限或syspoer系统权限。
#sysdba和sysoper两个系统权限区别
normal是普通用户
sysdba拥有最高的系统权限,登录后是sys
sysoper主要用来启动、关闭数据库,sysoper登录后用户是public
#dba和sysdba的区别
先了解下oracle服务的创建过程:创建实例 --> 启动实例 --> 创建数据库
启动过程:实例启动 --> 装载数据库 --> 打开数据库
sysdba是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,它就已经存在,以sysdba身份登录,装载数据库,打开数据库。只有数据库打开了,或者整个数据库完全启动后,dba角色才有存在的基础。
四、Oracle 管理实用案例
1.Oracle 监听
1.1检查 Oracle 监听状态
在 Oracle 用户下执行查询命令su
- oracle
lsnrctl
status
查询结果会显示监听到的实例名称及数量。
1.2启动 Oracle 监听
在启动 Oracle 监听前,先检查Oracle 监听状态,如果已经启动,需要先停止, 再重启
su
- oracle
lsnrctl
start
启动过程中,会自动检测监听到的实例名称及数量。
1.3停止 Oracle 监听
su- oracle
lsnrctl
stop
检查 Oracle 监听状态,查看是否停止。
2.Oracle 服务
2.1.检查 Oracle 服务是否启动
方法一:检查 oracle进程是否启动
ps
-ef | grep oracle
方法二:查看 Oracle
实例启动状态
su
- oracle
export
ORACLE_SID=SINDEV
sqlplus
/nolog
conn
/ as sysdba
select
instance_name,status from v$instance;
exit
查看 status 状态,为 OPEN 即说明该实例已经启动。
2.2.启动 Oracle 服务
先检查 Oracle 服务是否启动,如果已经启动,需要先停止 Oracle 服务再启动;启动 Oracle服务命令:
su
- oracle
export
ORACLE_SID=SINDEV
sqlplus
/nolog
conn
/ as sysdba
startup
select
instance_name,status from v$instance;
exit
查看 status 状态,为 OPEN 即说明该实例已经启动。
2.3停止 oracle 服务
停止Oracle 服务命令su
- oracle
export
ORACLE_SID=SINDEV
sqlplus
/nolog
conn
/ as sysdba
shutdown
immediate
exit
3.Oracle 存储空间管理
3.1表空间压缩
以 sysdba 的角色登录数据库,执行SQL:
select
t.file#,
'alter database datafile ''' || t.NAME || ''' resize ' ||
(nvl(round((select max(a.block_id) * 8 / 1024
from dba_extents a
where a.file_id = t.FILE#)),0) +
10) || 'M;',
t.name,
t.BYTES / 1024 / 1024 size_M,
nvl(round((select max(a.block_id) * 8 / 1024
from dba_extents a
where a.file_id = t.FILE#)),0) +
10
from v$datafile t;
对查询结果进行分析,将可压缩量大的表空间进行重分配大小。
3.2清理数据库轨迹日志
进入到 $ORACLE_BASE$/diag/rdbms/$sid/$sid目录下,可以对 trace 目录下的轨迹日志文件进行清理,释放一定的存储空间:
find
trace -ctime +30 | xargs rm -fr
参数 +30 意思是保留30天的存档,30天之前的日志全部删除。
3.3删除归档日志
此操作只针对已经启用归档模式的数据库,执行前先查询归档模式是否启用:select
instance_name,archiver from v$instance;
查询结果如果为
STARTED,则表明已经启用归档,此时,可以手动清理旧的归档日志,释放归档日志占用的存储空间,执行命令:
su
- oracle
rman
target /
crosscheck archivelog all;
delete expired archivelog all;
(或者执行;delete
archivelog until time 'sysdate-15'; 保留15天的存档)
exit
3.4重建表空间
对数据文件进行查看分析,将占用存储空间特别大(如超过20G)的数据文件进行重建.因临时表空间、UNDO表空间相对而言比较独立,如果临时表空间、UNDO表空间占用实际存储空间太大,可以参考此方法将临时表空间或UNDO表空间重建.
查看数据库物理文件占用的存储空间大小:
cd
$ORACLE_BASE/oradata/$sid
ls
-lh
案例一
以下是删除临时表空间并释放存储空间的步骤 (以 sysdba 执行 SQL):a.查看临时表空间大小:
select
tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
b.新增中间临时表空间:
create temporary tablespace Tblspace_TEMP1
TEMPFILE '/opt/oradata/Tblspace_TEMP1.dbf' SIZE 32m REUSE
AUTOEXTEND ON NEXT 512k
MAXSIZE UNLIMITED;
b.将数据库/某一用户临时表空间切换到中间临时表空间
alter
database default temporary tablespace Tblspace_TEMP1;
--
所有用户的默认临时表空间都将切换为新的临时表空间:
alter
user accfee temporary tablespace Tblspace_TEMP1;
--
更改某一用户的临时表空间
c.删除临时表空间
drop
tablespace Tblspace_TEMP including contents and datafile;
在服务器上检查物理文件是否删除,如果没有,可手动执行操作系统删除命令.
d.重建临时表空间
create
temporary tablespace Tblspace_TEMP TEMPFILE '/opt/oradata/Tblspace_TEMP.dbf'
SIZE 32m REUSE
AUTOEXTEND ON NEXT 512k
MAXSIZE UNLIMITED;
e.将数据库/某一用户临时表空间切换到重建临时表空间
alter
database default temporary tablespace Tblspace_TEMP;
--
所有用户的默认临时表空间都将切换为新的临时表空间:
alter
user accfee temporary tablespace Tblspace_TEMP;
--
更改某一用户的临时表空间
f.
删除中间临时表空间
drop
tablespace Tblspace_TEMP1 including contents and datafile;
至此,临时表空间所占用的存储空间已经释放.
在服务器上检查物理文件是否删除,如果没有,可手动执行操作系统删除命令.
案例二
重建 UNDO 表空间 (以sysdba 执行SQL)
a.查看 UNDO 表空间大小
select
tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from
dba_data_files;
b.新增中间 UNDO 表空间
CREATE UNDO
TABLESPACE UNDOTBS2 DATAFILE '/opt/oradata/undotbs2.dbf' size
100M;
c.将数据库 UNDO 表空间迁移到中间 UNDO
表空间
alter
system set undo_tablespace=UNDOTBS2 scope=both;
d.将 UNDO 表空间置为离线
alter
tablespace UNDOTBS1 offline;
e.删除 UNDO 表空间
drop
tablespace UNDOTBS1 including contents AND DATAFILES CASCADE CONSTRAINTS ;
在服务器上检查物理文件是否删除,如果没有,可手动执行操作系统删除命令.
f.重建 UNDO 表空间
CREATE UNDO
TABLESPACE UNDOTBS1 DATAFILE '/opt/oradata/undotbs1.dbf' size
100M;
g.切换中间 UNDO 表空间
alter
system set undo_tablespace=UNDOTBS1 scope=both;
h.删除中间 UNDO 表空间
drop
tablespace UNDOTBS2 including contents AND DATAFILES CASCADE CONSTRAINTS ;
在服务器上检查物理文件是否删除,如果没有,可手动执行操作系统删除命令.
相关文章推荐
- Oracle 常用函数的用法
- Oracle 时间加减操作
- 创建oracle job、删除oracle job的脚本
- oracle备份
- oracle 创建表分区
- 在java代码中使用Oracle数据库的事务处理机制
- Linux下通过wget下载Oracle补丁(如11.2.0.2.0)
- oracle中rownum和row_number()使用方法
- Oracle字符集
- Io exception: The Network Adapter could not establish the connection异常的解决办法
- Oracle GoldenGate 二、配置和使用
- oracle 电子商务解决方案讲义
- Oracle Study之---Oracle IN和NOT IN的使用
- Oracle Study之---Oracle IN和NOT IN的使用
- java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver异常的解决办法
- [Oracle] 用python插入中文
- Oracle与Mysql数据的事务处理机制
- Navicat连接oracle 10g出现unsupported server character set ZHS16GBK错误
- JDBC ORACLE BLOB处理
- oracle时间函数