Oracle on Ubuntu Linux

http://blogs.oracle.com/toxophily/entry/installing_oracle_11g_db_on

http://www.linuxidc.com/Linux/2011-03/32807.htm

http://www.pythian.com/news/13291/installing-oracle-11gr2-enterprise-edition-on-ubuntu-10-04-lucid-lynx/

https://forums.oracle.com/forums/thread.jspa?threadID=954055

1.

Update Packages

apt-get update
apt-get update

apt-get install elfutils libaio1 libaio-dev libstdc++6-4.4-dev numactl pdksh sysstat unixODBC-dev unixODBC build-essential libaio1 gawk ksh libmotif3 alien libtool lsb-rpm

2.

Create Groups

groupadd oinstall
groupadd dba
groupadd nobody

usermod -g nobody nobody

3.

Create / Update oracle User

useradd -s /bin/bash -m -g oinstall -G dba oracle

passwd oracle

4.

The following command is required to successfully run the installer.

xhost local:oracle

5.

Configure Limits for oracle

sudo gedit /etc/security/limits.conf

Add :

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

6.

Configure System

sudo gedit /etc/sysctl.conf

Add :

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
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304

7.

Make Directories

mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory

8.

Link command to location expected by oracle installer

ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename

9

Run Installer

I assume here that the user has previously installed the oracle database. If not simply follow the default options when the database installer executes.

./runInstaller

https://localhost:1158/em

Invalid source path ‘../stage/Components/oracle.jdk/1.5.0.17.0/1/DataFiles’ specified for unzip.

问题,第二张盘没有解压

http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html

mysql 123456

自启动

Post Install

Add the following to /etc/profile

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_OWNR=oracle
export
PATH=$PATH:$ORACLE_HOME/bin

Start Script

Create /etc/init.d/oracledb with the following contents:

#!/bin/bash
#
# Run-level Startup script for the Oracle Listener and Instances
# It relies on the information on /etc/oratab
#
export ORACLE_OWNR=oracle
export ORACLE_OWNER=oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo “Oracle startup: cannot start”
exit 1
fi

case “$1” in
start)
# Oracle listener and instance startup
echo -n “Starting Oracle: “
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/lsnrctl start”
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/dbstart $ORACLE_HOME”
touch /var/lock/oracle
echo “OK”
;;
stop)
# Oracle listener and instance shutdown
echo -n “Shutdown Oracle: “
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/lsnrctl stop”
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/dbshut $ORACLE_HOME”
rm -f /var/lock/oracle
echo “OK”
;;
reload|restart)
$0 stop
$0 start
;;
\*)
echo “Usage: `basename $0` start|stop|restart|reload”
exit 1
esac

exit 0

Execute :

cd /etc/init.d
update-rc.d oracledb defaults 99

The above will create links within the rc\*.d directories.

TNS:net service name is incorrectly specified

http://space.itpub.net/519536/viewspace-672034

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC=(
(SID_NAME=orcl)
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/)
)
)
)

NL-00303: syntax error in NV string

alert.log文件位置
unix下在:$ORACLE_BASE/admin/sid/bdump下
windows:%ORACLE_BASE%/admin/sid/bdump下

在使用emctl的时候碰到了ulimit: 25: bad number.的错误
这是因为Ubuntu默认把/bin/sh指向了dash,通过修改emctl脚本的头部,将/bin/sh改成/bin/bash即解决问题。

emctl stop dbconsole

ORACLE XE UBUNTU

当初在安装Oracle时整理的一些资料。

http://space.itpub.net/519536/viewspace-672034

【故障处理】ORA-12162: TNS:net service name is incorrectly specified

本文将给大家阐述一个因未设置系统环境变量ORACLE_SID导致ORA-12162错误的案例。希望大家有所思考。

1.获得有关ORA-12162报错信息的通用表述信息
[oracle@asdlabdb01 ~]$ oerr ora 12162
12162, 00000, “TNS:net service name is incorrectly specified”
// *Cause: The connect descriptor corresponding to the net service name in
// TNSNAMES.ORA or in the directory server (Oracle Internet Directory) is
// incorrectly specified.
// *Action: If using local naming make sure there are no syntax errors in
// the corresponding connect descriptor in the TNSNAMES.ORA file. If using
// directory naming check the information provided through the administration
// used for directory naming.

2.故障现象
本文所要描述的故障与这个通用的问题描述不同,在数据库服务器端使用TNSNAMES.ORA中记录的连接串连接没有问题,但如若未指定连接串,将会报出ORA-12162错误。

1)使用system用户尝试登录系统,此时便会收到报错如下信息
[oracle@asdlabdb01 ~]$ sqlplus system/sys

SQL*Plus: Release 10.2.0.3.0 – Production on Sat Aug 27 22:54:02 2010

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

ERROR:
ORA-12162: TNS:net service name is incorrectly specified

Enter user-name:

2)使用sysdba身份登陆会得到同样的错误信息
[oracle@asdlabdb01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 – Production on Sat Aug 27 22:54:48 2010

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

ERROR:
ORA-12162: TNS:net service name is incorrectly specified

Enter user-name:

3)但此时,如果使用服务名方式连接数据库,是可以成功的,这也是该问题现象的诡异之处。
[oracle@asdlabdb01 ~]$ sqlplus system/sys@ora10g

SQL*Plus: Release 10.2.0.3.0 – Production on Sat Aug 27 22:53:41 2010

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

system@ora10g>

想象一下,你的目标是快速的进入到数据库中进行维护操作,但此时登录都遭遇障碍,会感到非常的别扭。更让人抓狂的是,如果此时使用连接串登录到数据库进行停起操作,结果将会处于更加惨烈境况:数据库将因为无法正常登录导致无法启动数据库。

3.故障原因
诡异的故障背后的原因竟然是那样的基础:ORACLE_SID没有指定!
确认系统当前的ORACLE_HOME和ORACLE_SID环境变量
[oracle@asdlabdb01 ~]$ echo $ORACLE_HOME
/oracle/app/oracle/product/10.2.0/db_1
[oracle@asdlabdb01 ~]$ echo $ORACLE_SID

[oracle@asdlabdb01 ~]$

可见,此时只设置了ORACLE_HOME环境变量,但ORACLE_SID此时为空,这就是该问题的真实原因。

4.故障处理
给出ORACLE_SID,重新尝试登录。
[oracle@asdlabdb01 ~]$ export ORACLE_SID=ora10g
[oracle@asdlabdb01 ~]$ echo $ORACLE_SID
ora10g
[oracle@asdlabdb01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 – Production on Sat Aug 27 23:27:34 2010

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

sys@ora10g>

OK,此时问题处理完毕。

5.小结
这个案例给我们的启迪是什么?
1)系统默认的错误提示信息有时不具有参考价值。而且,某些情况下这些错误提示还可能给我们带来误导。原因很简单,系统默认的错误提示信息不可能囊括所有故障现象;
2)任何系统级别的设置问题都有可能导致数据库系统出现异常;
3)在遇到故障的时候,我们需要沉着冷静。有些时候可能需要我们Check最原始的信息,切莫想当然。

建议:为了避免出现文章中提到的问题,第一,可以将ORACLE_SID等环境变量写入到系统profile中,但需要确保系统profile文件内容的有效性;第二,不在profile中进行填写,每次登录数据库服务器时手工完成数据库环境变量的指定,这种方法虽然增加了键盘的敲击,但它更直观、更有保障。

Good luck.

secooler
10.08.27

— The End —

http://www.linuxidc.com/Linux/2011-05/35582.htm

Ubuntu版本:

uname -r

Linux localserver 2.6.32-24-server #43-Ubuntu SMP Thu Sep 16 16:05:42 UTC 2010 x86_64 GNU/Linux

在64位的系统上安装xe先要安装32位的库:

sudo apt-get install libc6-i386
下一步是下载需要的文件:libaio_0.3.104-1_i386.deb 和 oracle-xe-universal_10.2.0.1-1.1_i386.deb

wget -c http://oss.oracle.com/debian/dists/unstable/main/binary-i386/libaio_0.3.104-1_i386.deb http://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb

安装:

sudo apt-get install bc

sudo dpkg -i –force-architecture libaio_0.3.104-1_i386.deb
sudo dpkg -i –force-architecture oracle-xe-universal_10.2.0.1-1.1_i386.deb

到这里,安装步骤已经完成。接下来是设置部分

sudo /etc/init.d/oracle-xe configure

根据提示完成设置。

编辑一些环境变量:sudo vim /etc/profile

在文件最后加上:

ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID=XE
export PATH

完成后访问http://127.0.0.1:8080/apex可以管理数据库

常见问题:xe不能远程访问

Answer:

Oracle XE 安装完成后,可以通过 http://127.0.0.1:8080/apex 访问Oracle Application Express 。Oracle XE 默认只监听 127.0.0.1的 8080 端口, 不能在别的机器上通过浏览器访问XE实例,如果需要在别的机器上访问数据库服务器上的XE实例,需要以system 身份登陆XE数据库,运行 EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);。

SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

PL/SQL 过程已成功完成.

SQL> exit

教程:如何在SQL Server中使用其它数据库

在SQL Server中使用其它数据库很简单,关键是使用安全性->链接服务器。具体设置很多网站都有就不再写了。
如果你都设置好了,请看下图:

架构一列比较重要。在SQL Server的某个数据库中要访问这个链接数据库中的表,需要这个名字。
比如
CIJXCPL..DBA.p_fp 对应的p_fp表
CIJXCPL..dbo.ml_script对应的ml_script表。

执行结果如下:

如果你需透明的访问,就是象正常的表一样访问,可以创建视图。简单的创建语句如:
CREATE VIEW V_P_FP AS SELECT * FROM CIJXCPL..DBA.p_fp

这样你就可以在开发工具的客户端看到它了。

参考:
1. 微软关于数据库连接串的帮助
2. 数据库连接字符串大全

SQL Server中增加对其它数据库的支持

以图为准:

连接串的格式大致如下,根据数据库不同可能不一样,但如果你用过ADO就没什么问题了。如果需要的话我可以做一个小工具帮你生成这个串。
Provider=MSDASQL.1;Password=;Persist Security Info=True;User ID=;Data Source=

想连接什么Oracle啦,MySQL的就这样动手吧。

Kirix™ Strata™

Kirix™ Strata™ is an ad hoc data analysis and reporting tool built for people who work with, manipulate and analyze structured data.  Strata is easy to use, has the power you need to work with large files, and helps you get your work done faster:

  • Access data from anywhere (Oracle, SQL Server, CSV, XLS, EBCDIC, HTML, etc.)
  • Freedom from file size limitations (60 billion rows and 18 petabytes per table)
  • Speed, flexibility, and agility (designed for data usability, not data management)

这是一个开发人员想用的工具。当然,此类工具甚多,TOAD, EMS…还有PL Developer。当然了,Kirix Strata与他们都不同。这是一个数据库分析和报告工具。支持广泛的数据库系统,比如Oracle, SQL Server, CSV等。

另外的关键因素是这是一个采用wxWidgets作为开发框架的工具。因此理论支持wxWidgets可以使用的平台。