天使羊波波闪耀光芒 软件及互联网爱好者

23月/150

tnsnames.ora和tnsping

oracle客户端连接数据库

oracle客户端可以通过配置tnsnames.ora来连接数据库的,比如P/L SQL Developer。还有其它的是通过JDBC去连的。

tnsnames.ora记录了要连接数据库的信息。

例如:

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


tns连接字符串的格式为:

<addressname> =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = <hostname>)(Port = <port>))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = <sid>)
    )
)


注:addressname必须顶格写。如果是RAC模式,在ADDRESS_LIST下面添加多个ADDRESS

272月/150

sqlplus / as sysdba问题

在oracle自启动设置中,我们能够开机自启动oracle软件,实例,监听。
那么平时我们是用sqlplus sys/****** as sysdba命令来登录,启动脚本并不知道sys用户的密码,它是如何登录上去的呢?

经过查看脚本中是用sqlplus / as sysdba命令,它使用的是操作系统认证。使用这个命令登录,不需要sys用户密码,且登录后就是sys用户。

当oracle数据库的sys用户密码忘记的时候,可以通过操作系方式sqlplus / as sysdba进入数据库,然后执行alter user sys identified by xxx来修改sys用户密码。

对于执行sqlplus / as sysdba,要求操作用户在DBA用户组,如oracle用户可以执行此命令,而其他普通用户执行此命令时,会报权限不足的错误。

另外使用:
sqlplus /nolog;
conn / as sysdba;
也有和sqlplus / as sysdba同样的效果。

272月/150

Linux下oracle自启动设置

以oracle 10g为例,oracle软件安装完后已经提供了数据库的启动脚本,我们只要自己写一个脚本调用它的脚本就可以了。

涉及的文件有:
/etc/oratab
$ORACLE_HOME/bin下的两个脚本,dbstart和dbshut

编辑配置文件:

vim /etc/oratab

将:

orcl:/u01/oracle/product/10.2.0/db_1:N

改为:

orcl:/u01/oracle/product/10.2.0/db_1:Y

随后最简单的方法,在/etc/rc.local中加入:

su - oracle -c "/u01/oracle/product/10.2.0/db_1/bin/dbstart"
su - oracle -c "/u01/oracle/product/10.2.0/db_1/bin/lsnrctl start"

在/var/log/boot.log里可以看到两个命令的执行结果。
在/u01/oracle/product/10.2.0/db_1/startup.log里可以看到dbstart的执行日志。

272月/150

oracle入门(3)

oracle归档模式和非归档模式切换
oracle启动顺序简述

上一篇说到oracle的日志文件有联机重做日志和归档重做日志,只有在归档模式下,系统才会去写归档重做日志。

使用archive log list查看是否在归档模式下:

SQL> archive log list
Database log mode	       No Archive Mode
Automatic archival	       Disabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     176
Current log sequence	       177


一、非归档模式改为归档模式
1、命令:

shutdown;
startup mount;
alter database archivelog;
alter database open;
archive log list;

2、执行过程:

SQL> shutdown;  
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size		    2231096 bytes
Variable Size		  624952520 bytes
Database Buffers	  205520896 bytes
Redo Buffers		    2400256 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     176
Next log sequence to archive   177
Current log sequence	       177

262月/150

oracle入门(2)

oracle文件系统简述

在上一篇讲表空间中说到,在启动实例时,需要加载数据库,而这个数据库是由datafile、redo log file、control file、archive log file、parameter file等一堆文件组成的,那么这些文件分别有什么作用呢?

1、oracle的启动文件
启动文件的位置在$ORACLE_HOME/dbs下,有两个文件init.ora和spfile<inst_name>.ora,inst_name是当前实例名称。
这两个文件定义了启动的参数。init.ora是文本文件,spfile<inst_name>.ora是二进制文件。

注意:spfile<inst_name>.ora不能用文本编辑器修改,打开也不行,可能会造成实例无法启动。需要用alter命令修改。

2、oracle的控制文件
控制文件是*.ctl,10g在/u01/oracle/oradata/<inst_name> 目录下。形如:control01.ctl、control02.ctl、control03.ctl。
11xe版在/u01/app/oracle/oradata/<inst_name> 目录下,但是文件名变为了control.dbf,本质都是数据文件(二进制格式),只是文件后缀不一样。

3、oracle的数据文件
数据文件是*.dbf,10g也在/u01/oracle/oradata/<inst_name> 目录下。在创建表空间时需要指定的数据文件就是.dbf。数据库中的表是存储在数据文件中的。
11xe版在/u01/app/oracle/oradata/<inst_name> 目录下。

4、oracle的其它参数文件
监听程序的参数文件:
10g在
/u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
/u01/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
11xe版在
/u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
/u01/app/oracle/product/11.2.0/xe/network/admin/tnsnames.ora

262月/150

oracle入门(1)

oracle创建表空间及用户

oracle的学习对于像我这样的新手,还是要一步一步来,先把基本概念搞清楚。

我觉得oracle学习可以分为几个部分:
系统基本使用
系统调优
sql语句编写
sql调优
PL/SQL程序开发

以下讨论都是在单主机模式下进行。欢迎讨论指正。

问题1:什么是实例?
一个oracle软件安装完之后,它有一个默认的实例(instance),同时用户还可以在oracle中增加实例。
实例是一个内存结构(SGA+后台进程),每个实例有一组自己的进程组,用来管理运行实例。实例中包含了表空间、用户账户。

实例和实例之间是相互独立的。在逻辑上每个实例有自己的表空间、自己的用户。在物理上表空间内表的结构、数据和用户信息,存储在磁盘的数据文件和用户文件中。

一个实例只能打开一个数据库。

152月/150

超实用自己给手机贴膜方法

请看这里:http://www.uzzf.com/news/7469.html

清洁屏幕后,屏幕上残留的小灰尘用透明胶带粘掉即可。

152月/150

转自知乎 内向者如何融入群体?

首先,为我们内向性格人群点个赞!

我和楼主一样,是个内向的人。我的朋友也并不多,算得上朋友的两手就数完了。工作三年中,遇到了一个仿佛居委会主席附身的经理,最爱上班时间如下属拉家常。对我工作时间以外,远离同事及种种不和群的举动(例如中午不和同事一起吃饭,下班不和同事一起逛街等等)表示极为担忧,认为我日常不能融入群众,工作时定无法与人合作…简直是一派胡言。

我个人认为,在工作中,如能与所有人保持一个良好的工作关系,已经足够。过多的私交,反倒影响工作上的独立思考,公正及效率。

------------------------------
闲话不多说,我们直插主题。我觉得你的问题直白的说是:【我自认为性格内向,在工作中朋友圈太小,维系又太累,为了维护一个与其他人差不多的表象,我该怎么办?】

首先,推荐题主看一本书【内向者的优势】
开篇有个小测试,来确认你性格中,到底是内外各半,还是更偏内向。而且,书中有不少内容,看后会有种豁然开朗的感觉。

同时,内向的人并不代表不合群。只是,内向者更加习惯独自思考,独自一人时压力才能释放,活力得以补充;而不是像外向性格那样,需要在与人社交之中压力得到释放,活力得到补充。

所以,在现实中,当你企图和外向者们一起去社交时,那就会感到非常的累,非常的窒息,而外向者们对此却毫无知觉…反而觉得如鱼得水,快活的不得了。

就工作而言,不知题主的工作性质,所以大致的应对方法是:除非你真的在工作中遇到了知己,否则,对于所有的同事,皆可视为工作应酬。应酬算在工作时间,应酬以外,都是个人时间。

应酬包括:早晚微笑问好再见,礼貌待人,适当的说一些赞美和例如“天气真好”之类不痛不痒的废话,以及在自身条件允许的情况下,为同事开一些方便之门,向其伸出援手。以上作为维系一个良好的工作关系足以。

不用强迫自己非要加入某个圈子,有时保持中立反倒能省不少事情。另外学会礼貌的拒绝他人。拒绝并不是否定,不和你们混,不代表我看不起你们,只是我爱逛书店,你们爱唱K,不顺路,仅此而已。同时,要给自己留出可供支配的个人时间。

-------------------
具体怎么办,题主,你可培养一个自己的兴趣,这样拒绝的时候,人家也会觉得你很有诚意。举例:“今天我去不了了,刚办了健身卡,一会我去健身啦。/刚买了本新书等着回家看呢/买了音乐会的票一会去听/一会要去逛XX商场/今天我约了别人一会见面。”vs “今天不想去了,就想回家自己呆一会。” 立竿见影。

另外,最最重要的一点,也是我最受用的一点,送给题主。你要坚信:
【只要不是你亲耳听到,或其本人亲自告知的,其他任何传言皆可不放在心上” 】
不要幻想他人对你的看法,没对你直说,就是没看法。不要给自己不必要的负担,请务必大胆的活出自我。

122月/150

Linux下子进程回收

Linux中有以下几个方法用于子进程回收:

1、父进程使用wait()和waitpid()函数等待子进程结束,父进程会挂起。

2、父进程fork()一个子进程,父进程退出,子进程由init进程接管。

3、父进程使用signal(SIGCHLD, SIG_IGN)通知内核忽略SIGCHLD信号,子进程结束后,由内核回收,并不再给父进程发送SIGCHLD信号。

4、父进程使用signal(SIGCHLD, proc)注册一个函数,子进程结束后,父进程收到SIGCHLD信号,在定义的proc函数中调用wait()处理。

102月/150

signal和sigset函数

signal和sigset都是注册信号函数

signal是ANSI C的信号处理函数
sigset是System V的信号处理函数

ANSI C(标准C)是所有平台C程序都支持的,System V只在Unix/Linux使用。

如果程序运行在Linux平台,两者都可以,但是换到windows平台,信号处理就要用signal()了。