Linux服务器维护(jee/oracle)大杂烩(redhat7)
redhat7,oracle10g
真正的基础、基础、基础大杂烩,如果对linux有一点点概念,说不定就能找到需要的东西,全是干货干货干货。
引用参考:
http://wenku.baidu.com/link?url=DqwqHnRUpepB3omdMhWOjiwy8ugrYpYxXWtQ_KRKVlJl2ulvRsRpRK_wD7uXOjTRCd6-oB4HjR6_NGqQUBE-ZU893ZC5nk4VJ86FXgv5TZG
http://blog.chinaunix.net/uid-24612962-id-3160047.html
http://www.cnblogs.com/superjt/archive/2012/11/17/2774722.html
http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html
http://www.cnblogs.com/muliang/archive/2013/08/04/3237216.html
http://blog.csdn.net/tianlesoftware/article/details/41820095
http://blog.csdn.net/shizhebsys/article/details/18799593
http://www.cnblogs.com/xi52qian/p/4187019.html
http://www.centoscn.com/CentosServer/sql/Oracle/2015/0413/5168.html
http://blog.itpub.net/519536/viewspace-625514/
命令行约定:
# 表示在root下操作
~ 表示登陆到其它用户下的操作
开始:
win环境变量添加
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
vm8/redhat7/ 安装篇
/ /dev/hda1 10~15G足矣 /home /dev/hda2 最大的剩余空间 /boot /dev/hda3 100MB即可 swap /dev/hda5 大约内存大小(建议至少512MB) /var /dev/hda6 视服务器功能决定大小,至少需要1GB以上
设置运行级别(启动图形模式或命令模式)
vi /etc/inittab 中,找到id:5:initdefault行,修改5为3(命令)
Linux有7个运行级别:init[0123456] 0:关机/1:单用户/2:多用户状态没有网络服务/3:多用户状态有网络服务/ 4:系统未使用保留给用户/5:图形界面/6:重新启动
redhat 7,设置不一样
1.首先删除已经存在的符号链接
rm /etc/systemd/system/default.target
2.默认级别转换为3(文本模式)
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
或者默认级别转换为5(图形模式)
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
3.重启
reboot
配置网络
cd /etc/sysconfig/network-scripts/ #进入网络配置文件目录
vi ifcfg-eno16777736 #编辑配置文件,添加修改以下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | TYPE="Ethernet" BOOTPROTO="static" #启用静态IP地址 DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" NAME="eno16777736" UUID="8071cc7b-d407-4dea-a41e-16f7d2e75ee9" ONBOOT="yes" #开启自动启用网络连接 IPADDR0="192.168.21.128" #设置IP地址 #PREFIX0="24" #设置子网掩码 NETMASK0=255.255.255.0 #设置子网掩码 GATEWAY0="192.168.21.2" #设置网关 DNS1="8.8.8.8" #设置主DNS DNS2="8.8.4.4" #设置备DNS HWADDR="00:0C:29:EB:F2:B3" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" |
:wq! #保存退出
1 2 3 4 | service network restart #重启网络 ping www.baidu.com #测试网络是否正常 ip addr #查看IP地址 |
root下给目录授权
1 | # chmod -R 777 appdir |
运行程序
1 | # ./install.sh |
目录操作命令
1. pwd :查看当前目录
2. cd :
cd /:进入根目录
cd .. :返回上一级目录
cd ~:切换到当前目录的家目录
cd ~chenwei:切换到用户chenwei的家目录
cd -:将当前目录切换到上一个工作目录
3. ls :显示目录内容
ls –a:显示包括隐藏文件在内的所有文件,Linux中文件名以“.”开头表示该文件是隐藏文件。
ls –r:反向排序
ls –u:以最后存取时间排序
ls –t:以最后修改时间排序
ls –S:根据文件大小排序
ls –l :显示目录下所有文件夹或目录的权限,所有者,大小,修改时间。
ls –h:使用KB、MB、GB为单位显示;须以l格式显示(-lh)
4. mkdir :创建目录
mkdir chenwei:在当前目录下建立名为“chenwei”的目录
mkdir chenwei1 chenwei2 :在当前目录下建立名为“chenwei1”和“chenwei2”的两个目录
mkdir –p chenwei1/chenwei2:在当前目录的“chenwe1”目录中建立建立名为“chenwei2”的目录,-p是因为“chenwei1”目录也不存在。
5. tree:以树状图显示目录内容
查看文件
less aaa.log
分页查看文件内容,可以用上下方向、pageup、pagedown查看内容
卸载rpm
首先通过 rpm -q <关键字> 可以查询到rpm包的名字
然后 调用 rpm -e <包的名字> 删除特定rpm包
如果遇到依赖,无法删除,使用 rpm -e –nodeps <包的名字> 不检查依赖,直接删除rpm包
如果恰好有多个包叫同样的名字,使用 rpm -e –allmatches –nodeps <包的名字> 删除所有相同名字的包, 并忽略依赖
中断命令
ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.
ctrl+c是强制中断程序的执行,
而ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.
例如:
当你vi一个文件是,如果需要用shell执行别的操作,但是你又不打算关闭vi,因为你得存盘退出,你可以简单的按下ctrl+z,shell会将vi进程挂起~,当你结束了那个shell操作之后,你可以用fg命令继续vi你的文件.
tomcat自启动
1.如果etc/profile中没有配置java变量,则修改
#vi /etc/profile
文件最后添加如下内容
1 2 3 | export JAVA_HOME=/usr/local/jdk1.6.0_24 export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH |
#source /etc/profile
2.到tomcat目录bin目录下找到catalina.sh,复制文件到/etc/init.d并改名为tomcat
#cp /usr/local/apache-tomcat-7.0.11/bin/catalina.sh /etc/init.d/tomcat
3.编辑/etc/init.d/tomcat文件.在文件中添加如下”//$$部分”,”//$$$$$”为方便查找做的标注,$忽略掉
#vi /etc/init.d/tomcat
1 2 3 4 5 6 7 8 9 | #!/bin/sh //$$$$$ # chkconfig: 345 99 10 //$$ 这个地方必须加(决定chkconfig --list的结果),否则出现错误:tomcat 服务不支持 chkconfig.注意,要比数据库的启动优先级低,优先级99 10是越小越高 # description:Tomcat service. //$$ #Licensed to the Apache Software Foundation (ASF) under one or more //$$$$$ ----------------------------------------------------------------------------- CATALINA_HOME=/usr/local/apache-tomcat-7.0.11 //$$ JAVA_HOME=/usr/local/jdk1.6.0_24 //$$ JAVA_OPTS="-server -Xms51200M -Xmx51200M -Xss256k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=512M -XX:MaxPermSize=512M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true " # OS specific support. $var _must_ be set to either true or false. //$$$$$ |
加权限
# chmod +x /etc/rc.d/init.d/tomcat
添加tomcat 服务
#chkconfig –add tomcat //将服务添加到自动启动列表服务中
你可以通过以下方式检查:#setup,选择系统服务(System Service),找找是否有”tomcat”这一项,并且前面有个*号(*号表示自启动服务)
6)关闭和启动tomcat 服务,由此生成的tomcat 没有重启命令
#service tomcat stop ####关闭tomcat 服务
#service tomcat start ####启动tomcat 服务
查看tomcat 服务运行级别
# chkconfig –list |grep tomcat
tomcat 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
如果345 为关闭状态。执行如下命令设置tomcat为开机自启动。
# chkconfig tomcat on
检查是否开机启动 #netstat -an | grep 8080
tail -f /home/app/apachetomcat/catalina.out
oracle安装篇
检以下组件是否都安装
# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel
# rpm -q glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl-devel sysstat
名称模糊检查
rpm -qa |grep glibc
在rhel安装盘中Packages中的找到或下载对应安装文件安装
# cd /run/media/test/RHEL-7.0 Server.x86_64/Packages
# ls elfutils-libelf-de*
可以输入前部分名称后按tab自动填充完整文件名
# rpm -ivh elfutils-libelf-devel-0.125
下面这些组件必需顺序装
compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
上面这两个安装盘中没有,要自己下载
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2 (rpm -ivh gcc-4.8.2-16.el7.x86_64.rpm cpp-4.8.2-16.el7.x86_64.rpm glibc-devel-2.17-55.el7.x86_64.rpm glibc-headers-2.17-55.el7.x86_64.rpm kernel-headers-3.10.0-123.el7.x86_64.rpm)
gcc-c++-4.1.2 (rpm -ivh gcc-c++-4.8.2-16.el7.x86_64.rpm libstdc++-devel-4.8.2-16.el7.x86_64.rpm)
glibc-2.5-24
glibc-2.5-24 (32 bit) (rpm -ivh glibc-2.17-55.el7.i686.rpm nss-softokn-freebl-3.15.4-2.el7.i686.rpm)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
libstdc++-devel 32bit
make-3.81
numactl-devel-0.9.8.x86_64
sysstat-7.0.2
libXp-1.0.0-8.1.el5.i386.rpm
libXt 32
libXtst 32
2.验证系统要求
查看内存大小
# grep MemTotal /proc/meminfo
查看交换空间
# grep SwapTotal /proc/meminfo
查看磁盘空间,Oracle 11g R2 x64企业版的磁盘空间要求4.35GB以上。
# df -h
3.创建Oracle组和用户帐户
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
5.创建Oracle Base目录:
# mkdir -p /home/oracle/app/
# chown -R oracle:oinstall /home/oracle/app/
# chmod -R 775 /home/oracle/app/
4.配置内核参数
以root身份登录系统,根据用户指南配置以下参数:
修改文件/etc/sysctl.conf,添加以下内容:
# /etc/sysctl.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 | # for oracle fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 # 官方文档kernel.shmmax = 536870912,实际软件中需要kernel.shmmax = 980742144 kernel.shmmax = 980742144 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 |
执行以下命令时参数生效:
# /sbin/sysctl -p
确定安装oracle所使用的用户组
# id oracle 可以看到oracle组dba id 为1002
more /proc/sys/vm/hugetlb_shm_group 结果不是1002
修改内核参数 echo 1002 >/proc/sys/vm/hugetlb_shm_group
修改/etc/sysctl.conf文件
vm.hugetlb_shm_group = 1002
修改vi /etc/hosts , 添加主机IP地址和主机名 使用hostname命令查看主机名,ifconfig命令查看IP地址 增加下面内容,如果没有oracle 的监听器无法启动 192.168.71.129 Rock
加入下面的行到文件vi /etc/security/limits.conf(oracle是用户名)
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
加入下面的行到文件vi /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
64bit:/lib64/security/pam_limits.so
32bit:/lib/security/pam_limits.so
修改Linux的发行标记 8.1 需要将文件 vi /etc/redhat-release的内容由: Red Hat Enterprise Linux Server release 6.2 (Santiago) 修改为: Red Hat Enterprise Linux Server release 4 (Tikanga)
8.2 修改增强的Linux安全设置关闭防火墙:vi /etc/selinux/config SELINUX=disabled
6.编辑Oracle用户环境,编辑.bash_profile文件,,切换到oracle用户操作
# su – oracle
$ vi .bash_profile
编辑.bash_profile文件,添加以下内容
1 2 3 4 5 6 7 8 9 10 | # For Oracle export DISPLAY=:0.0 export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/home/oracle/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_SID=orcl export ORACLE_TERM=xterm export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib |
执行
source .bash_profile 使生效
#unset ORACLE_HOME
#unset TNS_ADMIN
正式安装oracle数据库
此步骤需要直接在服务器上操作,如果不能直接造作服务器,需要安装VNC远程桌面。
用root用户登录,上传文件并解压、授权文件
将安装文件10201_database_linux_x86_64.cpio.gz,上传到服务器/opt路径下,并解压文件,如下
解压gz文件
# gunzip 10201_database_linux_x86_64.cpio.gz
解压cpio文件
# cpio -idmv < 10201_database_linux_x86_64.cpio
解压完成后,opt下会有个database目录,给oracle用户授权 此目录的读权限
# chown -R oracle:oinstall database
重启
开始安装 oracle ,进入图形界面登陆oracle账号,
如果安装的系统是中文系统,执行下(防止中文乱码):export LANG=”en_US.UTF-8”
用oracle用户登录服务器或通过VNC登录,进入/opt/database目录下执行: ./runInstaller
如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序: # xhost +
Specify Operating System group name: 选择dba
UnsatisfiedLinkError exception loading native library: njni10
参考 http://blog.chinaunix.net/uid-25785357-id-4095473.html
安装了glibc-devel-32bit后重新安装数据库,数据库需要彻底删除,操作如下:
2. rm -rf $ORACLE_BASE/* --->oracle用户下
3. rm -f /etc/oraInst.loc /etc/oratab —>root用户下
4. rm -rf /etc/oracle —>root用户下
5. rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv —>root用户
6.# ./runInstaller
完全卸载,要删除oracle用户和组。(如果重新安装数据库,用户、组、环境变量、系统参数等配置不需要删除)
userdel oracle
groupdel dba
groupdel oinstall
ins_ctx.mk错误
检查32位的glibc-devel、libgcc是否安装
Error in invoking target ‘collector’ of makefile ‘/opt/oracle/102/sysman/lib/ins_emdb.mk’.
解决:这是oracle安装程序的一个bug,可以忽略此错误继续安装,对系统没什么影响。continue继续
安装或启动数据库时出错
ORA-27125:unable to create shared memory segment
解决:
1. 确定安装oracle所使用的用户组 # id oracle 可以看到oracle组dba id 为503。
2.more /proc/sys/vm/hugetlb_shm_group 结果不是503
3. 修改内核参数 echo “503” >/proc/sys/vm/hugetlb_shm_group 就可以了。 一路 Ignore–>OK–>.
修改/etc/sysctl.conf文件
vm.hugetlb_shm_group = 503
修改SID
[oracle@willie root]$ source oraenv (这个命令是用来修改SID的)
ORACLE_SID = [orcl] ?appdb
# /root/.bashrc: Permission denied
安装完成后,恢复语言环境以及版本信息
#export LC_CTYPE=zh_CN.UTF-8
#vi /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)
oracle操作篇
sqlplus登陆
sqlplus sys/pwd as sysdba “sys”:用户名,”pwd”:用户对应密码,”sysdba”是登陆身分
启动oracle
sqlplus / as sysdba
startup
exit
lsnrctl start
重启oracle
lsnrctl stop
sqlplus /nolog
conn /as sysdba
shutdown (startup)
exit
lsnrctl start
关闭oracle
lsnrctl stop
sqlplus /nolog
conn /as sysdba
shutdown
exit
startup pfile=’/u01/app/oracle/product/10.2.0/db_1/dbs/initappdb.ora’
有关oracle的基本参数的调整:
/home/oracle/app/oracle/admin/appdb/pfile/init.ora.10202007144030为安装时创建,一般用于还原时使用。
oracle正常启动时使用的是/home/oracle/app/oracle/product/10.2.0/db_1/dbs/spfileappdb.ora这个2进制文件,不能修改,当对oracle进行调整时,修改被记录到这个文件中,当修改导致oracle不能正常启动时,可以使用pfile文件进行恢复启动.
startup pfile=’/home/oracle/app/oracle/admin/appdb/pfile/init.ora.10202007144030′,oracle的参数将变为初始安装的状态。
可以使用以下的命令重新生成spfile文件(删除spfileappdb.ora后):
create spfile from pfile=’/home/oracle/app/oracle/admin/appdb/pfile/init.ora.10202007144030′
查看数据文件存放位置,建表空间时也用这个路径
select name from v$datafile;
/u01/app/oracle/oradata/appdb/system01.dbf
创建表空间
1 2 3 4 5 6 7 8 | #删除表空间及其表空间里的所有内容 drop tablespace ATMV INCLUDING CONTENTS; #windows: create tablespace ATMV datafile 'D:/oracle/product/10.2.0/oradata/orcl/ATMV.dbf' size 100m autoextend on next 50m maxsize unlimited; #Linux: create tablespace ATMV datafile '/u01/app/oracle/oradata/orcl/ATMV.dbf' size 1024m autoextend on next 500m maxsize unlimited; |
创建用户和受权
select username from dba_users;
drop user xxx cascade;
create user MISPSuser identified by MISPSpwd default tablespace TS_MISPS;
(oracle12中:create user c##MISPSuser identified by MISPSpwd default tablespace TS_MISPS;)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | //让用户使用这个表空间 //alter user MISPSuser default tablespace TS_MISPS; //分配session的权限 grant create session to MISPS; //分配创建表的权限 grant create table to MISPS; //分配创建视图的权限 grant create view to MISPS; //分配创建触发器的权限 grant create trigger to MISPS; //这行必须有 grant unlimited tablespace to MISPS; //分配创建索引的权限 grant create any index to MISPS; //分配修改表的权限 grant alter any table to misps; //分配修改存储过程的权限 grant alter any procedure to MISPS; //分配删除表的权限 grant drop any table to MISPS; //赋予删除视图的权限 grant drop any view to MISPS; //赋予删除索引的权限 grant drop any INDEX to MISPS; //赋予删除存储过程的权限 grant drop any procedure to MISPS; //赋予查询,插入,更新,删除表的权限 grant select any table,insert anytable,update any table,delete any table to MISPS; //让表unlock,没有这句会出现ORA-28000: the account is locked错误 alter user MISPS account unlock; //必须赋予connect,resource权限 grant connect,resource,DBA to MISPS; //这一句是修改密码的sql alter user MISPS identified by MISPS; 2.查看各表空间分配情况。 select tablespace_name, sum(bytes) / 1024 / 1024 from dba_data_files group by tablespace_name; 3.查看各表空间空闲情况。 select tablespace_name, sum(bytes) / 1024 / 1024 from dba_free_space group by tablespace_name; 4.更改数据表大小(10G) alter database datafile '/ora/oradata/radius/undo.dbf' resize 10240m; 5.设置表空间不足时自动增长 5.1查看表空间是否自动增长 SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files; 5.2 设置表空间自动增长 ALTER DATABASE DATAFILE 'c:\SmartDB01.ora' AUTOEXTEND ON;//打开自动增长 ALTER DATABASE DATAFILE 'c:\SmartDB01.ora' AUTOEXTEND ON NEXT 200M ;//每次自动增长200m ALTER DATABASE DATAFILE 'c:\SmartDB01.ora' AUTOEXTEND ON NEXT 200M MAXSIZE 1024M;//每次自动增长200m,数据表最大不超过1G |
数据库随系统启动
修改Oracle系统配置文件/etc/oratab
orcl:/u01/product/10.2.0/db_1:N,最后一个字符’N’,改为’Y’
(SID:ORACLE_HOME:AUTO,把AUTO域设置为Y(大写),只有这样,oracle自带的dbstart和dbshut才能够发挥作用)
在/etc/rc.d/init.d目录下创建oracle文件作为启动脚本
#vi /etc/rc.d/init.d/oracle
内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #!/bin/sh # #/etc/rc.d/init.d/oracle #startup or shutdown Oracle service and listener case "$1" in start) echo -n "Starting Oracle Databases: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle su - oracle -c dbstart>> /var/log/oracle echo "Done." echo -n "Starting Oracle Listeners: " su - oracle -c "lsnrctl start" >> /var/log/oracle #su - oracle "sqlplus /nolog" < #connect /as sysdba #startup #exit echo "Done." echo "" echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle touch /var/lock/subsys/oracle ;; stop) echo -n "Shutting Down Oracle Listeners: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle su - oracle -c "lsnrctl stop" >> /var/log/oracle echo "Done." rm -f /var/lock/subsys/oracle echo -n "Shutting Down Oracle Databases: " su - oracle -c dbshut>> /var/log/oracle echo "Done." echo "" echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle ;; restart) echo -n "Restarting Oracle Databases: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle su - oracle -c dbstop>> /var/log/oracle su - oracle -c dbstart>> /var/log/oracle echo "Done." echo -n "Restarting Oracle Listeners: " su - oracle -c "lsnrctl stop" >> /var/log/oracle su - oracle -c "lsnrctl start" >> /var/log/oracle echo "Done." echo "" echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle touch /var/lock/subsys/oracle ;; *) echo "Usage: oracle {start|stop|restart}" exit 1 esac |
保存退出
给予执行权限: chmod 775 /etc/rc.d/init.d/oracle
建立服务连接
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc2.d/S98oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc3.d/S98oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S98oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc0.d/K11oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc6.d/K11oracle
修改数据库启动和关闭脚本
#su – oracle
$vi $ORACLE_HOME/bin/dbstart
更改ORACLE_HOME_LISTENER的值为: $ORACLE_HOME/bin
#su – oracle
$vi $ORACLE_HOME/bin/dbshut
更改ORACLE_HOME_LISTENER的值为: $ORACLE_HOME/bin
(我这dbshut中没有这个配置)
apache httpd安装篇
检查环境
gcc-4.1.2
gcc-c++-4.1.2
# rpm -qa|grep zlib
zlib-devel-1.2.3-3
zlib-1.2.3-3
# rpm -qa|grep ssl
openssl-devel-0.9.8b-10.el5/
openssl-0.9.8b-10.el5
可能要下载安装libpcre-devel-8.37-alt2.x86_64.rpm
实在有些依赖忽略安装
httpd包
下载安装包到/home/lfl/soft/httpd-2.2.29.tar.gz
# cd /home/lfl/soft
解压
# gzip -d httpd-2.2.29.tar.gz
# tar -xvf httpd-2.2.29.tar
# cd httpd-2.2.29
1 ./configure [–prefix=/usr/local/apache2] –enable-module=so –enable-mods-shared=all
反向代理模块
# ./configure –enable-so –enable-mods-shared=”headers proxy proxy_http proxy_ftp proxy_connect proxy_scgi proxy_ajp proxy_balancer”
–prefix=/usr/local/apache2安装路径,不指定默认就是安装在这路径
# make
# make install
# cd /usr/local/apache2/bin
# ./apachectl start
# ./apachectl restart
# ./apachectl stop
有可能访问不到,后台中出错
semanage port -l |grep http
semanage port -a -t http_port_t -p tcp 8001
确认已开启以下模块
LoadModule headers_module modules/mod_headers.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
修改
Listen 8001
rverName localhost:8001
文件末加入代理配置
ProxyPass /app/ http://192.168.1.100:8280/webapp/
ProxyPassReverse /app/ http://192.168.1.100:8280/webapp/
ProxyPass / http://192.168.1.110:8080/
ProxyPassReverse / http://192.168.1.110:8080/
apache设为linux服务
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
vi /etc/init.d/httpd
在在 #!/bin/sh 后面加入下面两行
#chkconfig:345 85 15
#description: Start and stops the Apache HTTP Server.
然后
chmod +x /etc/rc.d/init.d/httpd
chkconfig –add httpd
chkconfig –list 查看服务
setup也可以查看、控制服务(空格开启关闭)
chkconfig命令详解
http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html
第二种方法:
在/etc/rc.d/rc.local中增加启动apache的命令,例如:/usr/local/httpd/bin/apachectl start
防火墙操作
显示状态:systemctl status firewalld.service
启动服务:systemctl start firewalld.service
关闭服务:systemctl stop firewalld.service
重启服务:systemctl restart firewalld.service
在开机时启用服务:systemctl enable firewalld.service
在开机时禁用服务:systemctl disable firewalld.service
查看是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
添加端口
$ sudo firewall-cmd –zone=public –add-port=1521/tcp –permanent
$ sudo firewall-cmd –reload
如果不使用“–permanent”标记,把么防火墙规则在重启后会失效。
oracle导出导入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | exp:imp: exp oracle账号/oracle密码 file=/mydata/dat.dmp owner=appdbuser (owner和tables不能同时使用) exp oracle账号/oracle密码 file=/mydata/dat.dmp tables=table1,table2,table3 exp oracle账号/oracle密码 file=/mydata/dat1.dmp,/mydata/dat2.dmp,/mydata/dat3.dmp tables=table1,table2,table3 filesize=1.9G imp oracle账号/oracle密码 file=/myimpdat/dat.dmp ignore=y full=y imp oracle账号/oracle密码 file=/myimpdat/dat.dmp ignore=y tables=table1,table2,table3 imp oracle账号/oracle密码 fromuser=username1 touser=username2 ignore=y file=expfile.dmp [tables=table1,table2,table3] imp oracle账号/oracle密码 file=/myimpdat/dat1.dmp,/myimpdat/dat2.dmp ignore=y tables=table1,table2,table3 导出库示例 exp appdbuser/appdbpwd file=/home/oracle/exp/bak20151114.dmp owner=appdbuser 导入库示例 imp appprodbuser/appprodbpwd fromuser=appdbuser touser=appprodbuser ignore=y file=/home/oracle/imp/bak20151114.dmp |
文件上传下载(windows下用到pscp小软件)
上传文件
pscp E:\new.txt root@192.168.1.2:/home/root/new.txt
下载文件
pscp root@192.168.1.2:/home/root/new.txt E:\new_copy.txt
oracle12c的一些
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | --显示当前连接container show con_name; --查看表空间: select instance_name from v$instance; select name,open_mode from v$pdbs; --切换container alter session set container=appdb; --打开container startup SELECT NAME FROM v$datafile; create tablespace appdb datafile '/u01/app/oracle/oradata/orcl/appdb/appdb.dbf' size 1024m autoextend on next 500m maxsize unlimited; select tablespace_name,file_id,file_name from dba_data_files; create user appdbroot identified by appdbroot default tablespace appdb; grant connect,resource,DBA to appdbroot; alter user appdbroot account unlock; drop tablespace dave including contents and datafiles; select * from user_tables where table_name = '' 查看服务状态 $lsnrctl service sqlplus appdb/appdb@localhost:1521/appdb.localdomain |
win环境变量中加
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
linux: export NLS_LANG=”AMERICAN_AMERICA.AL32UTF8″
数据库字符集:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | select userenv('language') from dual; 查询结果: SIMPLIFIED CHINESE_CHINA.AL32UTF8 --修改oracle数据库字符集:(在SQL Plus中,一般不建议) sql> conn / as sysdba; sql> shutdown immediate; database closed. database dismounted. oracle instance shut down. sql> startup mount; oracle instance started. total system global area 135337420 bytes fixed size 452044 bytes variable size 109051904 bytes database buffers 25165824 bytes redo buffers 667648 bytes database mounted. sql> alter system enable restricted session; system altered. sql> alter system set job_queue_processes=0; system altered. sql> alter system set aq_tm_processes=0; system altered. sql> alter database open; database altered. sql> alter database character set internal_use UTF8 sql> shutdown immediate; sql> startup; |
oracle修改SGA大小
1 2 3 4 5 | SQL> alter system set sga_max_size=4096M scope=spfile; SQL> alter system set sga_target=4096M scope=spfile; --sga_max_size/sga_target一般情况设为相同 --如果是RAC环境,需要这样增加sid='*': alter system set sga_target=20G scope=spfile sid='*'; |
oracle 10201监听失效bug
运行一段时间(不定)过后,客户端会不能连接oracle,但服务器上sqlplus又可以正常连接,网上查找到两个说法:
1.bug
原因:10201版本上的一个BUG:4518443,会自动创建一个子监听器,当出现此情况时,监听器将会挂起。
检查是否真因为此BUG造成此现象:
$ ps -ef|grep tnslsnr
ora10g 8909 1 0 Sep 15 ? 902:44 /u05/10GHOME/DBHOME/bin/tnslsnr sales -inherit
ora10g 22685 8909 0 14:19:23 ? 0:00 /u05/10GHOME/DBHOME/bin/tnslsnr sales –inherit
正常情况只有一个监听器,而此BUG则会出现两个监听器的话,说明是此问题。
解决方法:打补丁4518443 或者在listener.ora 文件里加入:
SUBSCRIBE_FOR_NODE_DOWN_EVENT_
其中,
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF
杀掉进程再启动监听
$kill 8909
$kill 22685
~lsnrctl start
listener.ora参考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | $ more /home/oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora # listener.ora Network Configuration File: /home/oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /home/oracle/app/oracle/product/10.2.0/db_1) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) ) #connect_timeout_listener=2 SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF #防止监听产生子进程 #INBOUND_CONNECT_TIMEOUT_listener=2 |
2.监听日志文件太大
清理日志文件/home/oracle/app/oracle/product/10.2.0/network/log/listener.log
加载光驱
查看光盘的完整路径名
ls -l /dev | grep cdrom
… cdrom -> sro cdrom是就光驱名
mount /dev/cdrom /mnt/
umount /mnt 用完后卸载,mnt下没有文件时成功
Comments are currently closed.