Oracle教程

Linux下安装Oracle

下载安装包并解压

解压oracle文件
用ifconfig 查看inter地址

[root@localhostroot]#mkdir -p /usr/local/oracle
[root@localhostroot]#cd /usr/local/oracle
[root@localhostoracle]#unzip linux.x64_11gR2_database_1of2.zip
[root@localhostoracle]#unzip linux.x64_11gR2_database_2of2.zip

执行以上命令后,将会在/usr/local/oracle/下面产生名为database的目录,这就是oracle安装程序的目录

创建用户和用户组

oracle不能在root帐户下进行安装,所以需要为oracle的安装专门创建一个用户,同时需要创建dba和oinstall的用户组。

[root@localhost oracle]#groupadd dba

[root@localhost oracle]#groupadd oinstall

以下命令将创建oracle用户,并设置密码
[root@localhostoracle]#useradd -g oinstall -G dba oracle

[root@localhostoracle]#passwd oracle

准备安装目录

[root@localhost oracle]#mkdir -p /u01/app/oracle
[root@localhost oracle]#mkdir -p /u01/app/oraInventory
[root@localhost oracle]#chown -R oracle:oinstall /u01/app/oraInventory

[root@localhost oracle]#chown -R oracle:oinstall /u01/app/oracle

[root@localhost oracle]#chmod 755 /u01/app/oracle

安装目标目录是用户想将oracle安装到哪个位置的目录,本次我们将oracle安装到/u01/app/oracle目录中,以下为目录创建命令。

设置Linux内核参数

修改vi /etc/sysctl.conf,在最后加入以下内容 后启用# /sbin/sysctl -p
kernel.shmall = 4294967296
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
若报错:
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
解决:
[root@172-1-1-154 oracle]# modprobe bridge
[root@172-1-1-154 oracle]# ls mod|grep bridge

修改vi /etc/security/limits.conf,在最后 # End of file前加入
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

修改vi /etc/hosts 最后一行添加本机ip

oracle用户打开此文件
[oracle@localhost oracle]#vi /home/oracle/.bash_profile
设置环境变量1(如果不行参考环境变量2)

.bash_profile

Get the aliases and functions

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

User specific environment and startup programs

PATH= P A T H : PATH: PATH:HOME/bin

export PATH

umask 022
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib

  ORACLE_BASE=/u01/app/oracle
  ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
  ORACLE_SID=ekp

LD_LIBRARY_PATH= O R A C L E H O M E / j d k / f r e / l i b / i 386 : ORACLE_HOME/jdk/fre/lib/i386: ORACLEHOME/jdk/fre/lib/i386:ORACLE_HOME/jdk/jre/lib/i386/server: O R A C L E H O M E / r d b m s / l i b : ORACLE_HOME/rdbms/lib: ORACLEHOME/rdbms/lib:ORACLE_HOME/lib: L D L I B R A R Y P A T H P A T H = LD_LIBRARY_PATH PATH= LDLIBRARYPATHPATH=ORACLE_HOME/bin:$PATH
NLS_LANG=American_America.AL32UTF8

ctrl+c保存, shift加:加+ 再输入wq保存退出

环境变量2:vi /root/.bash_profile
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export PATH= O R A C L E H O M E / b i n : ORACLE_HOME/bin: ORACLEHOME/bin:PATH
export LANG=en_US.UTF-8
应用该文件:1.tail .bash_profile
2.source .bash_profile

执行安装

先测试是否可以用图形界面安装软件
初始化服务:
[root@powerlong4 database]# yum groupinstall “X Window System” “Desktop Platform” Desktop
[root@powerlong4 database]# yum install vnc
注意:yum是联网安装,rpm是用安装包

用root账户输入
[root@orcltest ~]# export DISPLAY=:0.0

注意export DISPLAY=本机PC的真实ip:0.0

[root@orcltest ~]# xhost +
出现下面语句则成功
access control disabled, clients can connect from any host
如果无法打开图形界面,则执行
[root@orcltest ~]# yum install tigervnc-server

进入oracle安装文件

在安装oracle是可能会遇到network错误
可去http://vault.centos.org/6.5/os/x86_64/Packages/ 地址下载如下rpm
根据centos版本下载
用root进入目录安装
–nodeps 无视依赖
–force强制安装
rpm -ivh libstdc+±4.4.7-4.el6.x86_64.rpm
rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm
rpm -ivh kernel-headers-2.6.32-431.el6.x86_64.rpm
rpm -ivh glibc-headers-2.12-1.132.el6.x86_64.rpm
rpm -ivh glibc-devel-2.12-1.132.el6.x86_64.rpm
rpm -ivh libstdc+±devel-4.4.7-4.el6.x86_64.rpm
rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm
rpm -ivh gcc-c+±4.4.7-4.el6.x86_64.rpm
rpm -ivh compat-libstdc+±33-3.2.3-69.el6.x86_64.rpm
rpm -ivh unixODBC-2.2.14-12.el6_3.x86_64.rpm
rpm -ivh unixODBC-kde-2.2.14-12.el6_3.x86_64.rpm

如果装错版本
rpm -qa | grep -i cloog-ppl
查询出已装的rpm的名称
rpm -e 删除的名称

先在/etc/hosts文件里添加IP地址对应主机,例:192.168.40.131 myvm
[oracle@orcltest ~]# export LANG=en_US.UTF-8
[oracle@orcltest ~]# cd /usr/local/oracle/database
[oracle@orcltest ~]# ls
[oracle@orcltest ~]# ./runInstaller
如果无法启动图形界面,则用Xmanager用oracle账户登录

oracle进行check时,如果提示未安装的rpm,查看是否已安装版本。如果已安装比需求的高,则可忽略check。

检查时swap size不足:
root用户: 1.cd /tmp
建2G文件swapfree 2.dd if=/dev/zero of=swapfree bs=32k count=65515
该文件当交换区 3.mkswap swapfree
开启这个交换区 4.swapon swapfree
查看swap空间: 5.free

(2)安装数据库实例:
创建实例时对oracle赋予etc文件夹的权限:chown -R oracle:oinstall /etc

参考地址:http://blog.csdn.net/mchdba/article/details/43086037

[root@orcltest ~]# xhost +
[oracle@orcltest ~]# xhost +
[oracle@orcltest ~]# netmgr 配置监听
[oracle@orcltest ~]# netca 配置监听端口
[oracle@orcltest ~]# dbca 创建实例
以上都是图形界面

常见问题

解锁用户:
1.sqlplus /nolog;–运行sqlplus,进入slqplus环境,/nolog没有参数,即不登入数据库

2.conn/ as sysdba;–以sys身份连接,操作系统认证;

或sqlplus / as sysdba

3.alter user system identified by system;–修改system用户密码为system;

4.alter user system account unlock/lock;–system账户解锁/锁定;

错误: ORACLE not available
解决:SQL>startup force

错误:
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file
解决:原来是没有initicare1.ora文件
解决此问题的方法就是到cd /oracle/app/oracle/admin/orcl/pfile/目录下,将ora.1114201016265复制到dbs目录下,记得改名字

SGA、PGA的分配原则
OLTP:SGA=系统内存0.56,PGA=SGA(0.1~0.2)
OLAP:SGA=系统内存0.48,PGA=SGA(0.45~0.65)

Character Sets:
选择UTF-8

给用户赋权限:chown -R oracle:oinstall /oracle

主机名:hostname

与主机名有关的文件:
hosts
network
还有dbhome里的两个监听文件,(可用netmgr设置)

端口号修改:
/sbin/iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
/etc/rc.d/init.d/iptables save

listener.ora文件如下:

listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora

Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST=
(SID_DESC=
(SID_NAME=ORCL)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2)
)

(SID_DESC=
	(GLOBAL_DBNAME=orcl)
	(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2)
	(SID_NAME=orcl)
)

)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.1.1.34)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (ORCL)

INBOUND_CONNECT_TIMEOUT=60

ADR_BASE_LISTENER = /u01/app/oracle

Oracle笔记

当前数据库连接数select count(*) from v p r o c e s s 当前并发连接数 s e l e c t c o u n t ( ∗ ) f r o m v process 当前并发连接数select count(*) from v process当前并发连接数selectcount()fromvsession where status =‘ACTIVE’

数据库最大连接数select value from v$parameter where name =‘processes’

用户解锁
alter user SUNDSPWP_IF account unlock;

删除用户
1.drop user sunds241 cascade
如果报错无法删除当前连接用户:
2.select sid,serial# from v$session where username=‘SUNDS241’;
3.alter system kill session ‘15,19095’; // ‘sid,serial#’

重启监听lsnrctl stop
lsnrctl start

错误oracle
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does notexist
解决:
SQL>startup force

修改最大连接数alter system set processes = 1000 scope=spfile;
1.关闭oracle:shutdown immediate
2.重启oracle:startup

管理员登录sqlplus: 1.su oracle
2.sqlplus / as sysdba
修改用户密码 alter user sunds identified by sunds;

#按用户导出
exp sunds241241/SUNDS241241@172.16.3.206/xe file=d:/sunds241241.dmp (不要加分号)
导入
imp sunds/sunds@192.168.1.8/sunbizdb file=d:/sunds241241.dmp full=y ignore=y

修改oracle编码:
1.shutdown immediate
2.startup mount
3.alter system enable restricted session;
4.alter system set job_queue_processes=0;
5.alter system set aq_tm_processes=0;
6.alter database open;
7.alter database character set internal_use ZHS16GBK;
8.shutdown immediate
9.startup
查看编码:
select userenv(‘language’) from dual
select * from nls_database_parameters

SIMPLIFIED CHINESE_CHINA.ZHS16GBK : 一个汉字占用两个字节
SIMPLIFIED CHINESE_CHINA.AL32UTF8 : 一个汉字占用三个字节

mybats (in 的 sql):
String []arr = role_no.split(“&”);
params.put(“menu”, menu);
params.put(“ids”, arr);
return menuTreeDao.selectdefaultQueryMenu(params);

select distinct m.* from sm_menu_tb m, sm_right_tb r where m.menu_id = r.menu_id and m.is_open='1' and m.menu_belong like CONCAT(CONCAT('%',#{menu.menuBelong,jdbcType=VARCHAR}),'%') and m.bank_no=#{menu.bankNo,jdbcType=VARCHAR} and m.system_no=#{menu.systemNo,jdbcType=VARCHAR} and m.project_no=#{menu.projectNo,jdbcType=VARCHAR} and r.role_no in #{item} order by m.menu_level,m.menu_order,m.menu_id

DB2与Oracle 序列不同:
oracle中取dual表,db2没有dual表,其取特殊表SYSIBM.SYSDUMMY1
oracle:select SEQ_ELEMENTNO_STANDARD.nextval as id from dual
db2:select SEQ_ELEMENTNO_STANDARD.nextval from SYSIBM.SYSDUMMY1

兼容方法:创建一个与dual功能相同的视图:
create view dual as select IBMREQD as DUMMY from SYSIBM.SYSDUMMY1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苹果好心情ss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值