tuxedo(三)-tuxedo与oracle连接配置

tuxedo(二)中已经基本启动了tuxedo服务,只是与oracle的连接还未配置好,如果配置完成就可以完成并开发最基本的三层服务应用结构。本节将介绍与oracle12c  pdb 数据库的连接配置。我们使用XA接口,因为该模式可以与多个数据库连接。

一.oracle数据库配置准备

oracle12c 引入了CDB与PDB新特性,该特性详见 ORACLE 12C新特性——CDB与PDB。

我们在PDB上新建用户表空间及权限用于tuxedo 系统连接使用。

1.启动数据库监听

修改监听及TNS配置然后启动监听

添加list_listener sid:

同时当PDB启动后,会动态的默认启动pdborcl sid数据库的监听。当然也可以静态的配置上去

/oracle/11g/network/admin/listener.ora:

 

[bath]#ADD BY ZWR SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME =/oracle/11g) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME =/oracle/11g) (SID_NAME = orcl) ) ) [/bath]

启动监听

[bath]lsnrctl status lsnrctl stop lsnrctl start [/bath]

image

启动数据库

sqlplus /nolog 

conn sys/Mwb123456 as sysdba startup 

2.创建PDB表空间用户

使用sqlplus 登陆到 CDB表容器后,先登陆到PDB

切换PDB数据库

C## user zwruser identified by zwruser default tablespace zwr temporary tablespace zwr_temp;

alter session set container=pdborcl;

startup

创建表空间用户

create tablespace zwr logging datafile'/oracle/oradata/orcl/zwr1.dbf' size 100m autoextend on next 100m maxsize 10240m extent management local;

create temporary tablespace zwr_temp tempfile'/oracle/oradata/orcl/zwr_temp1.dbf ' size 100m autoextend on next 100m maxsize 10240m extent management local;

create user zwruser identified by zwruser default tablespace zwr temporary tablespace zwr_temp;

grant create user,drop user,alter user,create any view,connect,resource,dba,create session,create any sequence to zwruser ;

使用新建用户连接数据库

conn zwruser/zwruser@//localhost:1521/pdborcl as sysdba

二.tuxedo 连接配置

1.配置ubbsimple 内Oralce_XA连接参数:

OPENINFO="Oracle_XA:Oracle_XA+Acc=P/zwruser/zwruser+SqlNet=pdborcl+SesTm=600+MaxCur=5+LogDir=."

连接用户名:

Acc=P/zwruser/zwruser:用户名,密码Acc=P/zwruser as sysdba/zwruser

数据库TNS名称:

SqlNet=pdborcl:数据库名称

2.修改tnsnames,添加 pdborcl  :

/oracle/11g/network/admin/tnsnames.ora:

ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.localdomain) ) ) pdborcl = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdborcl.localdomain) ) ) 

三:启动调试

tmboot -y

启动texedo 服务:

image

以上表示启动成功,如果红框内显示Fail,则在配置的XA配置的log目录下查看日志信息:

ULOG.120813以及xa 开头的日志。

 

以上就已经完成 tuxedo服务与数据库的连接。

tuxedo(二)-tuxedo安装配置

前面一节准备好了系统数据库环境,然后我们就可以安装tuxedo了。

一、创建用户

root 用户下创建用户组及tuxedo用户

groupadd tux useradd tuxedo -g tux -G dba 

passwd tuxedo

二、tuxedo 安装

tuxedo下载

[bath]sh tuxedo111120_64_Linux_01_x86.bin -i console[/bath]

tuxedo111120_64_Linux_01_x86.bin:http://download.oracle.com/otn/bea/tuxedo/11g/111120/tuxedo111120_64_Linux_01_x86.bin?AuthParam=1477891570_b560b9a7eac57fd458be753ed0f84778

[bath]sh tuxedo111120_64_Linux_01_x86.bin -i console[/bath]

安装语言,选择English,默认回车

image

软件介绍,有警告信息,跳过,回车

image

选择安装模式,默认全部安装,回车

image

选择oracle home目录,输入准备安装的路径:/home/tuxedo/oracle

image

是否安装样例,选择是

image

确认安装信息后安装:tuxedo 安装到 /home/tuxedo/oracle/tuxedo11gR1

至此tuxedo 中间件已经安装到系统中,下面确认tuxedo 服务的运行配置

三、 tuxedo服务配置

我们使用 样例中的 samples/atmi/simpapp 来配置服务及验证系统。

重新设置服务目录,将样例拷贝到该服务目录:

/home/tuxedo/oracle/tuxedoapp/src/simpapp。

1.配置环境变量:更改使用

[bath]sh /home/tuxedo/oracle/tuxedo11gR1/tux.env[/bath]

[bath]TUXDIR=/home/tuxedo/oracle/tuxedo11gR1; export TUXDIR JAVA_HOME=$TUXDIR/jre; export JAVA_HOME JVMLIBS=$JAVA_HOME/lib/amd64/server:$JAVA_HOME/jre/bin ORACLE_HOME=/oracle/11g;export ORACLE_HOME ORACLE_BASE=/oracle;export ORACLE_BASE PATH=$ORACLE_HOME/bin:$TUXDIR/bin:$JAVA_HOME/bin:$PATH; export PATH COBCPY=:$TUXDIR/cobinclude; export COBCPY COBOPT=”-C ANS85 -C ALIGN=8 -C NOIBMCOMP -C TRUNC=ANSI -C OSEXT=cbl”; export COBOPT SHLIB_PATH=$TUXDIR/lib:$JVMLIBS:$SHLIB_PATH; export SHLIB_PATH LIBPATH=$TUXDIR/lib:$JVMLIBS:$LIBPATH; export LIBPATH LD_LIBRARY_PATH=$TUXDIR/lib:$JVMLIBS:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH WEBJAVADIR=$TUXDIR/udataobj/webgui/java; export WEBJAVADIR TUXCONFIG=/home/tuxedo/oracle/tuxedoapp/src/simpapp/tuxconfig;export TUXCONFIG [/bath]

2.配置服务ubbsimple文件如下:

特别要注意的有:#add by zwr 的项及与oracle 数据连接的配置OPENINFO,TMSNAME。

#    (c) 2003 BEA Systems, Inc. All Rights Reserved.
#ident    “@(#) samples/atmi/simpapp/ubbsimple    $Revision: 1.7 $”

#Skeleton UBBCONFIG file for the TUXEDO Simple Application.
#Replace the <bracketed> items with the appropriate values.

*RESOURCES
#IPCKEY        <Replace with a valid IPC Key>

#Example:
IPCKEY        123456

DOMAINID    simpapp
MASTER        simple
MAXACCESSERS    10
MAXSERVERS    5
MAXSERVICES    10
MODEL        SHM
LDBAL        N

*MACHINES
DEFAULT:
        APPDIR=”/home/tuxedo/oracle/tuxedoapp/src/simpapp”
        TUXCONFIG=”/home/tuxedo/oracle/tuxedoapp/src/simpapp/tuxconfig”
        TUXDIR=”/home/tuxedo/oracle/tuxedo11gR1″
#Example:
#        APPDIR=”/home/me/simpapp”
#        TUXCONFIG=”/home/me/simpapp/tuxconfig”
#        TUXDIR=”/usr/tuxedo”
#add by zwr xa
TLOGDEVICE= “/home/tuxedo/oracle/tuxedoapp/TLOG”
TLOGNAME=TLOG
TLOGSIZE=200
“localhost.localdomain”    LMID=simple

#Example:
#beatux        LMID=simple

*GROUPS
GROUP1
    LMID=simple    GRPNO=1
OPENINFO=”Oracle_XA:Oracle_XA+Acc=P/zwruser/zwruser+SqlNet=pdborcl+SesTm=600+MaxCur=5+LogDir=.”
TMSNAME=”TMS_ORA11g” TMSCOUNT=2
*SERVERS
DEFAULT:
        CLOPT=”-A”

simpserv    SRVGRP=GROUP1 SRVID=1

*SERVICES
TOUPPER

 

3.生成服务配置

[bath]$tmloadcf -y ubbsimple[/bath]

4.生成与数据库连接的TMS_ORA11g

[bath]buildtms -o $ORACLE_HOME/bin/TMS_ORA11g -r Oracle_XA[/bath]

5.编译服务

[bath]buildserver -o simpserv -f simpserver.c -r Oracle_XA -s TOUPPER[/bath]

6.启动关闭服务

[bath]tmboot -y tmshutdown -y [/bath]

7.编译客户端并测试

[bath]buildclient -o simpcl -f simpcl.c[/bath]

$./simpcl hello 显示Returned string is: HELLO表示测试成功

tuxedo(一)-服务器准备vmware12,oracle12c

tuxedo 中间件一般与oracle 数据结合使用,构成一个3层的分布式服务框架,现在就安装一下tuxedo 所准备的环境,centos6.5、oracle12c,为了测试方便我们将其安装到VMware中。

软件版本

VMware 12,oracle12c,centos6.5

安装

一、安装VMWare12

没什么说的基本上就是选择文件夹和下一步,最后需要输入License,5A02H-AU243-TZJ49-GTC7K-3C61N。

二.安装CentOS 6.5

没什么好说的

三、安装Oracle

1.下载oracle11c,zip文件,一起解压即可

2.使用root用户登录,并通过yum安装必须软件

Shell代码 收藏代码

  1. # yum install binutils compat-libstdc++-33 elfutils elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel 

3.新建oracle用户及oracle安装文件目录

Shell代码 收藏代码

  1. #groupadd oinstall  
  2. #groupadd dba  
  3. #useradd -g oinstall -G dba oracle  
  4. #passwd oracle  
  5. #mkdir /oracle  
  6. #mkdir /oracle/11g  
  7. #chown -R oracle:oinstall /oracle 

4.修改系统环境变量

这一步用vi其实比较麻烦,推荐用sFtp工具将文件拷贝出来修改

另,附件中有要修改的文件备份,和修改结果

1).#vi /etc/sysctl.conf

Shell代码 收藏代码

  1. kernel.shmall = 2097152
  2. kernel.shmmax = 2147483648
  3. kernel.shmmni = 4096
  4. kernel.sem= 250 32000 100 128
  5. fs.file-max=6815744
  6. net.ipv4.ip_local_port_range = 9000 65500
  7. net.core.rmem_default = 262144
  8. net.core.rmem_max = 4194304
  9. net.core.wmem_default = 262144
  10. net.core.wmem_max = 10488576
  11. fs.aio-max-nr = 10488576

2).#vi /etc/security/limits.conf

Shell代码 收藏代码

  1. oracle  soft    nproc   2047
  2. oracle  hard    nproc   16384
  3. oracle  soft    nofile  1024
  4. oracle  hard    nofile  65536

3).vi /etc/pam.d/login

Shell代码 收藏代码

  1. session required /lib/security/pam_limits.so  
  2. session required pam_limits.so 

4).vi /etc/profile

Java代码 收藏代码

  1. if [ $USER = “oracle” ]; then  
  2. if [ $SHELL = “/bin/ksh” ]; then  
  3.         ulimit -p 16384
  4.         ulimit -n 65536
  5. else
  6.         ulimit -u 16384 -n 65536
  7.     fi  
  8. fi 

5).cd /home/oracle

vi .bash_profile

Java代码 收藏代码

  1. ORACLE_BASE=/oracle  
  2. ORACLE_HOME=$ORACLE_BASE/11g  
  3. –下面的配置是安装oracle后新建的oracle实例的名字  
  4. ORACLE_SID=orcl  
  5. PATH=$ORACLE_HOME/bin:$PATH  
  6. export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH 

6).关闭SELinux,安装完成后可以打开

#vim /etc/selinux/config 确保以下内容

Shell代码 收藏代码

  1. SELINUX=disabled 

5.安装oracle

用oracle用户进入linux,进入终端,并进入安装文件目录(这个目录放在哪里都可以,就是一开始两个压缩解压缩的目录)

Shell代码 收藏代码

  1. $cd oralce 安装文件目录 

–下一步骤是为了防止oracle安装过程中的中文乱码问题

Shell代码 收藏代码

  1. $LANG=en 

开始安装,如果提示Permission denied,用chmod设置一下权限

Shell代码 收藏代码

  1. $chmod 777 database -R  
  2. $cd database  
  3. $sh runInstaller 

安装过程是图形界面,按照提示一直安装就行。安装过程中会要求你用root用户执行命令root.sh和orainstRoot.sh,自己照着提示的完整路径做就是。还有会要求制订一个inventory目录,随便哪个位置都行。






Shell代码 收藏代码

  1. wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm  
  2. rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm 

中间出现Password Management直接选择OK

然后等待提示用root用户执行sh,中间输入地址直接回车。

6.验证

(1)系统重启后启动oracle过程

在oracle用户下,进入终端输入

Shell代码 收藏代码

  1. $ sqlplus  
  2. SQL*Plus: Release 11.2.0.1.0 Production on Mon Feb 20 22:46:00 2012
  3. Copyright (c) 1982, 2009, Oracle.  All rights reserved.  
  4. Enter user-name: sys as sysdba  
  5. Enter password:    

输入正确的用户名和密码,注意sys用户登录的话必须加上 as sysdba

然后启动oracle服务:

Sqlplus代码 收藏代码

  1. sql> startup  
  2. sql> exit 

关闭Oracle服务

Sqlplus代码 收藏代码

  1. sql> shutdown immediate 

(2)再启动oracle监听程序

Shell代码 收藏代码

  1. $ cd $ORACLE_HOME/bin  
  2. $ lsnrctl start 

测试

重新打开一个终端,如下输入:

Shell代码 收藏代码

  1. $ sqlplus sys as sysdba @localhost :1521/orcl 

输入密码,进入到oracle的sqlplus命令行下,执行一个简单的查询(显示所有的用户):

Sqlplus代码 收藏代码

  1. SQL> select * from all_users; 

或执行:

Sqlplus代码 收藏代码

  1. SQL> select table_name from user_tables 

另:

1.创建一个具有DBA权限的用户

(1)以管理员身份进入数据库 SQLPLUS SYSTEM/密码

(2)创建用户 CREATE USER 用户名 IDENTIFIED BY 密码;

Sqlplus代码 收藏代码

  1. SQL> create user sgq0085 identified by 123456;  
  2. User created. 

(3)将用户上锁/解锁  ALTER USER 用户名 ACCOUNT UNLOCK/LOCK;

Sqlplus代码 收藏代码

  1. SQL> alter user sgq0085 account lock;  
  2. User altered.  
  3. SQL> alter user sgq0085 account unlock;  
  4. User altered. 

(4)授予新创建的用户登录权限 GRANT CREATE SESSION TO 用户名;

Sqlplus代码 收藏代码

  1. SQL> grant create session to sgq0085;  
  2. Grant succeeded. 

(5)授予新创建的用户数据库管理员权限 GRANT DBA TO 用户名;

Sqlplus代码 收藏代码

  1. SQL> grant dba to sgq0085;  
  2. Grant succeeded.  
  3. SQL> select * from dba_users; 

(6)切换到新创建的用户登录 CONNECT 用户名/密码;

Sqlplus代码 收藏代码

  1. SQL> connect sgq0085/123456;  
  2. Connected. 

(7)删除用户 DROP USER 用户名

Sqlplus代码 收藏代码

  1. SQL> drop user sgq0085;  
  2. User dropped. 

2.指定开放系统端口

Shell代码 收藏代码

  1. # su – root  
  2. # vi /etc/sysconfig/iptables 

希望开放的端口写为如下这种

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 1158 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 1521 -j ACCEPT

vi中复制一行的方法

Vi代码 收藏代码

  1. 1)把光标移动到要复制的行上 2)按yy 3)把光标移动到要复制的位置 4)按p 

重启iptables

Shell代码 收藏代码

  1. # service iptables restart 

检测

Shell代码 收藏代码

  1. # iptables -L 

3.设置系统时间和时区

Shell代码 收藏代码

  1. [root@localhost ~]# date -s 09/29/2013
  2. Sun Sep 29 00:00:00 CST 2013
  3. [root@localhost ~]# date -s 09/29/2013
  4. Sun Sep 29 00:00:00 CST 2013
  5. [root@localhost ~]# cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  
  6. cp: overwrite `/etc/localtime’? y  
  7. [root@localhost ~]# clock -w  
  8. [root@localhost ~]# date -R  
  9. Sun, 29 Sep 2013 00:02:01 +0800
  10. [root@localhost ~]#  

4.NAT 固定IP地址

/etc/sysconfig/network-scripts/ifcfg-eth0

Txt代码 收藏代码

  1. DEVICE=”eth0″
  2. BOOTPROTO=”static” #还有一种是dhcp  
  3. BROADCAST=192.168.130.255 #广播地址  
  4. NETWORK=192.168.130.0 #网段  
  5. IPADDR=192.168.130.128 #静态IP  
  6. NETMASK=255.255.255.0 #子网掩码  
  7. HWADDR=”00:0C:29:08:5F:12″
  8. IPV6INIT=”yes”
  9. NM_CONTROLLED=”yes”
  10. ONBOOT=”yes”
  11. TYPE=”Ethernet”
  12. UUID=”ebfda46e-4e37-4126-8b30-96b7650843de”

/etc/sysconfig/network

Txt代码 收藏代码

  1. NETWORKING=yes  
  2. HOSTNAME=localhost.localdomain  
  3. GATEWAY=192.168.130.2 #默认网关 

重启

Shell代码 收藏代码

  1. service network restart  

route add default  gw 192.168.130.2

/etc/resolv.conf

Txt代码 收藏代码

  1. # Generated by NetworkManager  
  2. nameserver 192.168.130.2 #指定DNS  
  3. # No nameservers found; try putting DNS servers into your  
  4. # ifcfg files in /etc/sysconfig/network-scripts like so:  
  5. #  
  6. # DNS1=xxx.xxx.xxx.xxx  
  7. # DNS2=xxx.xxx.xxx.xxx  
  8. # DOMAIN=lab.foo.com bar.foo.com 

防止resolv.conf被修改

Shell代码 收藏代码

  1. chattr +i /etc/resolv.conf 

—–Linux下查看及更改oracle字符集编码
[root@OracleDB ~]# cd /usr/local/oracle/
[root@OracleDB oracle]# env|grep NLS_LANG
NLS_LANG=american_america.zhs16gbk
[root@OracleDB oracle]# vi .bash_profile
# 使 bash_profile 设置生效
source .bash_profile

# 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
# 常用中文字符集
export
可以编辑 bash_profile 文件进行永久设置
vi .bash_profile
export NLS_LANG=”SIMPLIFIED CHINESE_CHINA.ZHS16GBK”

or export NLS_LANG=”Simplified Chinese_china”.ZHS16GBK
# 使 bash_profile 设置生效

單一使用者可進行 root 所有指令(sudo)

Shell代码 收藏代码

  1. [root@~]# visudo  
  2. ….(前面省略)….  
  3. root    ALL=(ALL)       ALL  <==找到這一行,大約在 76 行左右  
  4. vbird1  ALL=(ALL)       ALL  <==這一行是你要新增的!  
  5. ….(前面省略)…. 

vbird1 是账号名