YUM源配置
#clean OS default repo
mkdir /etc/yum.repos.d/old && mv /etc/yum.repos.d/C* /etc/yum.repos.d/old/
yum clean all
#add extend repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
创建组并指定用户所属组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
创建目录
mkdir -p /app/oracle11g
修改数据库权限
chown -R oracle.oinstall /app/
内核参数初始化
在/etc/sysctl.conf末尾增加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4195045376
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
文件描述符修改
在/etc/security/limits.conf末尾增加
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
切换oracle用户,配置环境变量
su - oracle
vim ~/.bash_profile
文件末尾追加,注意修改实例名称和位置
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/app/oracle11g; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=dingdb; export ORACLE_SID
NLS_LANG=American_America.ZHS16GBK; export NLS_LANG
ORA_NLS10=$ORACLE_HOME/nls/data; export ORA_NLS10
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
SHLIB_PATH=$LD_LIBRARY_PATH; export SHLIB_PATH
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
增加hosts
echo "192.168.2.20 odb01.prod.ding" >> /etc/hosts
上传程序文件,并解压
cd /opt
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
cd /opt/database
安装必要软件
Oracle同时需要64位软件和32位软件,但有一个问题,安装了32位软件后警告依旧存在(我安装的包比他要求的新)。
百度有人解释到:Oracle11g检测不到高版本软件,好吧,就这样。
64位软件包
yum install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libXext libX11 libXau libxcb libXi make sysstat libaio-devel -y
32位软件包
yum install libaio.i686 libaio-devel.i686 compat-libstdc++-33.i686 elfutils-libelf-devel.i686 glibc.i686 glibc-devel.i686 libgcc.i686 libstdc++.i686 unixODBC.i686 unixODBC-devel.i686 libaio-devel.x86_64 unixODBC.x86_64 libXext.i686 -y
切换到图形界面
root用户执行,或sudo执行
xhost +
netca
选择"Listen Configuration"然后一直下一步
完成后查看 1521端口是否启动
dbca
数据库字符集(database character set):
American_America.ZHS16GBK;
**第9步时,自定义字符集。
我们开发一般选择:ZHS16GBK
**
su - oracle
启动
/app/oracle11g/product/11.2.0/dbhome_1/bin/lsnrctl start
停止
/app/oracle11g/product/11.2.0/dbhome_1/bin/lsnrctl stop
su - oracle
/app/oracle11g/product/11.2.0/dbhome_1/bin/emctl start dbconsole
alter system set deferred_segment_creation=false
命令行登录
sqlplus / as sysdba
启动
startup
停止
shutdown immediate
su - oracle
/app/oracle11g/product/11.2.0/dbhome_1/bin/emctl start dbconsole
YUM源配置
#clean OS default repo
mkdir /etc/yum.repos.d/old && mv /etc/yum.repos.d/C* /etc/yum.repos.d/old/
yum clean all
#add extend repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
创建组并指定用户所属组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
创建目录
mkdir -p /app/oracle12c
修改数据库权限
chown -R oracle.oinstall /app/
内核参数初始化
在/etc/sysctl.conf末尾增加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4195045376
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
文件描述符修改
在/etc/security/limits.conf末尾增加
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
切换oracle用户,配置环境变量
su - oracle
vim ~/.bash_profile
文件末尾追加,注意修改实例名称和位置
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/app/oracle12c; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1; export ORACLE_HOME
ORACLE_SID=dingdb; export ORACLE_SID
NLS_LANG=American_America.zhs16gbk; export NLS_LANG
ORA_NLS10=$ORACLE_HOME/nls/data; export ORA_NLS10
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
SHLIB_PATH=$LD_LIBRARY_PATH; export SHLIB_PATH
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
增加hosts
echo "192.168.2.20 odb01.prod.ding" >> /etc/hosts
上传程序文件,并解压
cd /opt
unzip linuxamd64_12102_database_1of2.zip
unzip linuxamd64_12102_database_2of2.zip
cd /opt/database
安装必要软件
yum install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libXext libX11 libXau libxcb libXi make sysstat libaio-devel -y
切换到图形界面
root用户执行,或sudo执行
xhost +
netca
选择"Listen Configuration"然后一直下一步
完成后查看 1521端口是否启动
dbca
数据库字符集(database character set):
American_America.ZHS16GBK;
**第9步时,自定义字符集。
我们开发一般选择:ZHS16GBK
**
su - oracle
/app/oracle11g/product/11.2.0/dbhome_1/bin/emctl start dbconsole
alter system set deferred_segment_creation=false
监听的启动和停止
su - oracle
启动
/app/oracle12c/product/12.1.0/db_1/bin/lsnrctl start
停止
/app/oracle12c/product/12.1.0/db_1/bin/lsnrctl stop
数据库的启动和停止
命令行登录
sqlplus / as sysdba
启动
startup
停止
shutdown immediate
Oracle 字符集 知识点
数据库字符集:(按照开发要求)
国家字符集:(默认)
客户端(NLS_LANG)
NLS_LANG各部分含义如下:
LANGUAGE指定:
-Oracle消息使用的语言
-日期中月份和日显示
TERRITORY指定
-货币和数字格式
-地区和计算星期及日期的习惯
CHARACTERSET:
-控制客户端应用程序使用的字符集
通常设置或者等于客户端(如Windows)代码页
或者对于unicode应用设置为UTF8
startup,startup mount,startup nomount之间的区别
startup nomount选项:(读初始化参数文件,启动实例)
startup nomount选项启动实例,但不安装数据库。当数据库以这个模式启动时,参数文件被读取;后台进程和内存结构被启动;但它们不被附加或与数据库的磁盘结构进行通信。当实例处于这个状态时,数据库是不可使用的。
通常启动到这里可以做create database , create or recreate control file 或者是mount standby database等动作,修改parameter也是可以的。
startup mount 选项:(打开控制文件)
startup nount选项执行STARTUP NOMOUNT选项的所有工作,但另外附加数据库结构并与这些结构进行交互。这时Oracle从它用来查找和附加到主要数据库结构的控制文件中获得信息。当处于这个模式时,可以执行一些管理型任务,比如恢复。
读取control file
通常启动到这里的目的有
recover dtabase ; backup database ; rename db files ,change archivelog mode等
startup open 选项:(打开数据文件,日志文件)
如果STARTUP命令行上没有指定任何模式,STARTUP OPEN选项就是默认的启动模式。STARTUP OPEN选项执行STARTUP NOMOUNT和STARTUP MOUNT选项的所有步骤。这个选项把数据库变成对所有用户都时可用的。
open datafile ,online redo log
startup force选项:
如果在用正常方式启动数据库时遇到了困难,可以使用STARTUP FORCE选项。STARTUP FORCE选项首先异常关闭数据库,然后重新启动它。
STARTUP RESTRICT选项:
STARTUP RESTRICT选项启动数据库并把它置入OPEN模式,但只给拥有RESTRICTED SESSION权限的用户赋予访问权。
Oracle导出表补全
deferred_segment_creation在11.2.0.4版本的新增参数,默认是true。
这会导致在exp时,没有segment的对象不会导出。
解决:
alter system set deferred_segment_creation=false scope=both;
create table table_name segment creation immediate;
--找到需要初始化的表,并生成语句
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;
--执行生成语句
来使其创建出分配空间,
当然也可以插入一条数据,使其创建分配空间;
32位Oracle9i 调整最大内存超过1.7GB后,数据库挂了
查看临时文件
select FILE#,TS#,NAME,STATUS,ENABLED from v$tempfile;
查看临时文件是不是自动扩展
select FILE_NAME,FILE_ID,TABLESPACE_NAME,AUTOEXTENSIBLE ,STATUS from dba_temp_files;
alter database tempfile '..../temp.dbf' autoextend off
血淋淋的教训:
1.盲目操作,没有按照主库进行配置,错了活该。
2.遇到问题不看日志,活该。