SqLiter

1、去重

select *  from daydata where wtid||rectime in (select wtid||rectime from daydata group by wtid||rectime having count(wtid||rectime) > 1) and ctid not in

(select min(ctid) from daydata group by wtid||rectime     having count(wtid||rectime)>1)

(适用于postgre,其他数据库类似,总体思路:

a、wtid||rectime是连接两个字段, 表示这俩个同时重复时算重复;ms sql 用wtid+rectime ;

b、第一个子查询:select wtid||rectime from daydata group by wtid||rectime having count(wtid||rectime) > 1

     统计重复的记录的重复字段;

c、select *  from daydata where wtid||rectime in (select wtid||rectime from daydata group by wtid||rectime having count(wtid||rectime) > 1)

统计重复记录;

d、select min(ctid) from daydata group by wtid||rectime     having count(wtid||rectime)>1

取重复记录中的一条记录

e、ctid是唯一字段,要么是主键要么就是每个数据库常用的行号字段: ms sql 用:ROW_NUMBER() over (order by id) oracle用rownumer()

 

su 命令 功能:直接将身份变成其他用户。(需要其他用户的密码) 用法:          $ su [选项]... [-] [用户 [参数]...] 参数:

-, -l, --login

-l 后接用户名,单独的- 代表root,且使用 root 的环境变量。

-c, --commmand=COMMAND

仅进行一次命令,-c 后可直接加命令。

-m, --preserve-environment

使用目前的环境设定,而不重新读取新使用者的设定。

-p

同 -m

       --help

显示此帮助信息并退出

       --version

输出版本信息并退出

用 exit 命令或快捷键[Ctrl+D]可返回原登录用户。
例1:由 svyee 转变为 root 用户

[svyee@localhost ~]$ su 口令:<= 输入 root 的密码 [root@localhost svyee]# # 没有使用 - 情况下,仍为原用户环境变量。
[svyee@localhost ~]$ su - 口令:<= 输入 root 的密码 [root@localhost ~]#  # 加上参数 - 后,完全切换到了root用户的环境变量。

高手推荐用su时,最好用 su - 。我是菜鸟,只知其然,暂不知其所以然。
例2:由 svyee 转变为 test 用户

[svyee@localhost ~]$ su -l test 口令:<= 输入 test 的密码 [test@localhost ~]$

------------------------------------------------------------------------------------------------------------------------------ 下面是 sudo 命令         可以说sudo命令补偿了它的一个致命缺陷,那就是任何一个想转为root用户的人都得掌握root用户的密码,我这样的菜鸟也知道这很不安全,俺的root密码跟银行卡密码一样呢,能让别人知道吗?!哈哈,开玩笑。菜鸟归菜鸟,俺不是笨鸟。
功能:对于root授权的用户,可使用该命令临时切换到root用户环境下。           授权文件为 /etc/sudoers 文件,只要里面有你的大名,你就享有sudo特权。
新装的系统,root只给他自己特权,下面先加上给svyee加上特权。
菜鸟方法优先: #用上面的 su 命令换至 root 环境。

[svyee@localhost ~]$ su - 口令:<= 输入 root 的密码 [root@localhost ~]# kwrite /etc/sudoers # 用KDE的KWrite来编辑文件,可以点鼠标,方便。

在打开的sudoers文件中,找到下面的字样,添上最后一行。 # User privilege specification root       ALL=(ALL) ALL svyee      ALL=(ALL) ALL <= 添上这一行。
点鼠标,保存退出。OK! svyee有特权了。
高手方法: Ctrl + Alt + F1 在文本模式下以root身份登录,然后:

[root@linux ~]# visudo

或:

[root@linux ~]# vi /etc/sudoers

推荐用前者。 同样添加上一行。保存退出。 vi的具体操作,等俺学了再来总结。
下面,回到 sudo 参数:

-b

在后台执行指令。

-h

显示帮助。

-k

结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。

-l

列出目前用户可执行与无法执行的指令。

-s<shell>

执行指定的shell。

-u<user>

以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。

-v

延长密码有效期限5分钟。

-V

显示版本信息。

例3:入侵禁区

[svyee@localhost ~]$ sudo mkdir /good Password: <=输入svyee的密码即可。 # OK,成功建立目录good。 [svyee@localhost ~]$ sudo rmdir /good # 嘿嘿。删除成功,不用再输密码了。

方便的是第一次使用sudo输入密码后,下一次就不用再输密码啦。 你看那Adobe Reader 搞什么鬼,只有root身份才能打开。有sudo就轻松啦:
例4:运行特权软件

[svyee@localhost ~]$ sudo acroread # 一会 Adobe Reader 就乖乖打开了。

(上例更简便的方法见:昵称时代, alias 让 Linux 命令更简练
例5:变为 root 环境

[svyee@localhost ~]$ sudo -s Password: <=输入svyee的密码即可。 [root@localhost ~]#

就到这吧。觉得肤浅?欢迎留下您的高见,俺菜鸟啊。

作者:yaucyj 发表于2014/7/16 11:36:34 原文链接
阅读:96 评论:0 查看评论
  [原]centos6.x查找文件安装目录

有时候用yum 安装后找不到路径,可以使用以下两部:

1、rpm -qa | grep XXX ;XXX是你要查找的文件名(支持模糊查找,不需要完整的文件名);

2、根据查出来的包名

rpm -ql 查出来的包名

WebKit 是一个开源的浏览器内核引擎与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也称MSHTML,IE 使用)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail和其他一些Mac OS X 程序。WebKit 前身是 KDE 小组的 KHTML,WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了后者,就因为它拥有清晰的源码结构、极快的渲染速度。Apple将 KHTML 发扬光大,推出了装备 KHTML 改进型 WebKit 引擎的浏览器 Safari。

      WebKit是开源的Web浏览器引擎,苹果的Safari、谷歌的Chrome浏览器都是基于这个框架来开发的。WebKit 还支持移动设备和手机,包括iPhone和Android手机都是使用WebKit做为浏览器的核心。

  WebKit 是一个开源项目,其起源可追溯到 K Desktop Environment (KDE)。WebKit 项目催生了面向移动设备的现代 Web 应用程序。虽然设备本身的能力和形态因素都相当重要,但移动用户最热衷的仍然是内容。如果移动用户可用的内容只是 Internet 用户可用内容的一个很小的子集,那么用户体验充其量也只能划分为二等。

  WebKit 还应用在了桌面的 Safari 浏览器内,该浏览器是 Mac OS X 平台默认的浏览器。不管我们讨论的是桌面版本还是 iPhone 或 Android 上的浏览器引擎,WebKit 均优先支持 HTML 和 CSS 特性。实际上,WebKit 还支持尚未被其他浏览器采纳的一些 CSS 样式 — 这些特性正在得到 HTML5 规范的考虑。

  HTML5 规范是一个技术草案集,涵盖了各种基于浏览器的技术,包括客户端 SQL 存储、转变、转型、转换等。HTML5 的出现已经有些时间了,虽然尚未完成,但是一旦其特性集因主要浏览器平台支持的加入而逐渐稳定后,Web 应用程序的简陋开端将成为永久的记忆。Web 应用程序开发将成为主导 — 并且不只是在传统的桌面浏览器空间,还将在移动领域。移动将一跃成为首要考虑,而不再是后备之选。

内核引擎

 

 WebKit 引擎比 Gecko 引擎更受程序员欢迎的原因,除了其引擎的高效稳定,兼容性好外,其源码结构清晰,易于维护,是一个重要的原因。而 Gecko 的可维护性就差多了。   现在浏览器的内核引擎,基本上是四分天下:   Trident: IE 以Trident 作为内核引擎;   Gecko: Firefox 是基于 Gecko 开发;   WebKit: Safari, Google Chrome,搜狗浏览器 基于 Webkit 开发。   Presto: Opera的内核,但由于市场选择问题,主要应用在手机平台--Opera mini   WebKit 内核在手机上的应用十分广泛,例如 Google 的手机 Gphone、 Apple 的 iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。
应用平台
  在应用于Mac Os上的Safari之后,Webkit很快被广泛地移植到其他系统平台:   iPhone OS:   2007年6月29日,iPhone上市,WebKit进入iPhone OS平台,而且立即成为iPhone OS平台独一无二的排版引擎。   Android:   Google 开发的手机操作系统Android中内置的浏览器也是采用的WebKit引擎。   Nokia S60平台:   诺基亚公司将WebKit移植到Symbian S60操作系统中,并开发了基于Webkit的手机浏览器“Web browser for S60”,广泛用于诺基亚、三星、LG等基于Symbian S60操作系统的手机中。   Web OS:   Palm 推出第一款基于WebKit的操作系统,Palm Pre是第一款基于该系统的手机产品。   Linux:   尽管WebKit的原型K内核是由Qt写成,但Linux下目前最受瞩目的WebKit项目却是Gnome领导的WebKit/Gtk+。随着奇趣科技于2008年6月被Nokia收购,Qt方面也加快了WebKit的“回归”进程。   Midori,Google Chrome,GNOME的Epiphany、KDE的Konqueror,Arora是现在Linux系统下主要的Webkit内核浏览器。   Windows:   Webkit内核在Windows上发展最晚,Safari(for Windows),Midori,Google chrome,具有双核模式的傲游3和搜狗浏览器2(高速模式下使用Webkit核心)是最为常见的Webkit浏览器。2009年推出的safari和Chrome以及2010年推出的搜狗浏览器V2.0Beta和傲游3.0beta都使用的webkit引擎完全通过了acid3测试满分!   浏览器:   2008年9月2日,谷歌公司发布的第一个版本Google Chrome(中文名为谷歌浏览器)就采用了Webkit引擎。   2009年,广受关注的Google手机的自带的浏览器也是Webkit内核,加载网页速度比IE手机浏览器快了近一倍。   2010年1月24日,搜狗公司发布搜狗浏览器V2.0Beta,采用Webkit引擎,并支持与IE引擎互相切换。   2010年1月24日,傲游3.0beta发布。
其他相关
  尽管Webkit内核是个非常好的网页解释机制,但是由于微软把IE捆绑在Windows里,导致许多网站都是按照IE来架设的很多网站不兼容Webkit内核,比如登录界面、网银等网页均不可使用Webkit内核。目前来讲,Webkit还不能取代IE内核

bin = BINaries   
/dev = DEVices 
/etc = ETCetera 
/lib = LIBrary    
/proc = PROCesses    
/sbin = Superuser BINaries    
/tmp = TeMPorary    
/usr = Unix Shared Resources    
/var = VARiable ?    
FIFO = First In, First Out    
GRUB = GRand Unified Bootloader    
IFS = Internal Field Seperators    
LILO = LInux LOader    
MySQL = My是最初作者女儿的名字,SQL = Structured Query Language    
PHP = Personal Home Page Tools = PHP Hypertext Preprocessor    
PS = Prompt String    
Perl = "Pratical Extraction and Report Language" = "Pathologically Eclectic Rubbish Lister"    
Python 得名于电视剧Monty Python's Flying Circus    
Tcl = Tool Command Language    
Tk = ToolKit    
VT = Video Terminal    
YaST = Yet Another Setup Tool    
apache = "a patchy" server    
apt = Advanced Packaging Tool    
ar = archiver    
as = assembler    
awk = "Aho Weiberger and Kernighan" 三个作者的姓的第一个字母    
bash = Bourne Again SHell    
bc = Basic (Better) Calculator    
bg = BackGround    
biff = 作者Heidi Stettner在U.C.Berkely养的一条狗,喜欢对邮递员汪汪叫。    
cal = CALendar    
cat = CATenate    
cd = Change Directory    
chgrp = CHange GRouP    
chmod = CHange MODe    
chown = CHange OWNer    
chsh = CHange SHell    
cmp = compare    
cobra = Common Object Request Broker Architecture    
comm = common    
cp = CoPy    
cpio = CoPy In and Out    
cpp = C Pre Processor    
cron = Chronos 希腊文时间    
cups = Common Unix Printing System    
cvs = Current Version System    
daemon = Disk And Execution MONitor    
dc = Desk Calculator    
dd = Disk Dump    
df = Disk Free    
diff = DIFFerence    
dmesg = diagnostic message    
du = Disk Usage    
ed = editor    
egrep = Extended GREP    
elf = Extensible Linking Format    
elm = ELectronic Mail    
emacs = Editor MACroS    
eval = EVALuate    
ex = EXtended    
exec = EXECute    
fd = file descriptors    
fg = ForeGround    
fgrep = Fixed GREP    
fmt = format    
fsck = File System ChecK    
fstab = FileSystem TABle    
fvwm = F*** Virtual Window Manager    
gawk = GNU AWK    
gpg = GNU Privacy Guard    
groff = GNU troff    
hal = Hardware Abstraction Layer    
joe = Joe's Own Editor    
ksh = Korn SHell    
lame = Lame Ain't an MP3 Encoder    
lex = LEXical analyser    
lisp = LISt Processing = Lots of Irritating Superfluous Parentheses    
ln = LiNk    
lpr = Line PRint    
ls = list    
lsof = LiSt Open Files    
m4 = Macro processor Version 4    
man = MANual pages    
mawk = Mike Brennan's AWK    
mc = Midnight Commander    
mkfs = MaKe FileSystem    
mknod = MaKe NODe    
motd = Message of The Day    
mozilla = MOsaic GodZILLa    
mtab = Mount TABle    
mv = MoVe    
nano = Nano's ANOther editor    
nawk = New AWK    
nl = Number of Lines    
nm = names    
nohup = No HangUP    
nroff = New ROFF    
od = Octal Dump    
passwd = PASSWorD    
pg = pager    
pico = PIne's message COmposition editor    
pine = "Program for Internet News & Email" = "Pine is not Elm"    
ping = 拟声 又 = Packet InterNet Grouper    
pirntcap = PRINTer CAPability    
popd = POP Directory    
pr = pre    
printf = PRINT Formatted    
ps = Processes Status    
pty = pseudo tty    
pushd = PUSH Directory    
pwd = Print Working Directory    
rc = runcom = run command, rc还是plan9的shell    
rev = REVerse    
rm = ReMove    
rn = Read News    
roff = RunOFF    
rpm = RPM Package Manager = RedHat Package Manager    
rsh, rlogin, rvim中的r = Remote    
rxvt = ouR XVT    
seamoneky = 我    
sed = Stream EDitor    
seq = SEQuence    
shar = SHell ARchive    
slrn = S-Lang rn    
ssh = Secure SHell    
ssl = Secure Sockets Layer    
stty = Set TTY    
su = Substitute User    
svn = SubVersioN    
tar = Tape ARchive    
tcsh = TENEX C shell    
tee = T (T形水管接口)    
telnet = TEminaL over Network    
termcap = terminal capability    
terminfo = terminal information    
tex = τέχνη的缩写,希腊文art    
tr = traslate    
troff = Typesetter new ROFF    
tsort = Topological SORT    
tty = TeleTypewriter    
twm = Tom's Window Manager    
tz = TimeZone    
udev = Userspace DEV    
ulimit = User's LIMIT    
umask = User's MASK    
uniq = UNIQue    
vi = VIsual = Very Inconvenient    
vim = Vi IMproved    
wall = write all    
wc = Word Count    
wine = WINE Is Not an Emulator    
xargs = eXtended ARGuments    
xdm = X Display Manager    
xlfd = X Logical Font Description    
xmms = X Multimedia System    
xrdb = X Resources DataBase    
xwd = X Window Dump    
yacc = yet another compiler compiler

SQLite 作为一个轻量级嵌入式数据库,还是非常好用的。 {

http://sqlite.phxsoftware.com/  

An open source ADO.NET provider for the SQLite database engine

} 今天有个朋友测试 SQLite,然后得出的结论是:SQLite 效率太低,批量插入1000条记录,居然耗时 2 分钟! 下面是他发给我的测试代码。我晕~~~~~~

using System.Data; using System.Data.Common; using System.Data.SQLite;
// 创建数据库文件 File.Delete("test1.db3"); SQLiteConnection.CreateFile("test1.db3");
DbProviderFactory factory = SQLiteFactory.Instance; using (DbConnection conn = factory.CreateConnection()) {   // 连接数据库   conn.ConnectionString = "Data Source=test1.db3";   conn.Open();
  // 创建数据表   string sql = "create table [test1] ([id] INTEGER PRIMARY KEY, [s] TEXT COLLATE NOCASE)";   DbCommand cmd = conn.CreateCommand();   cmd.Connection = conn;   cmd.CommandText = sql;   cmd.ExecuteNonQuery();
  // 添加参数   cmd.Parameters.Add(cmd.CreateParameter());      // 开始计时   Stopwatch watch = new Stopwatch();   watch.Start();      // 连续插入1000条记录   for (int i = 0; i < 1000; i++)   {     cmd.CommandText = "insert into [test1] ([s]) values (?)";     cmd.Parameters[0].Value = i.ToString();
    cmd.ExecuteNonQuery();   }
  // 停止计时   watch.Stop();   Console.WriteLine(watch.Elapsed); }

哎~~~~ 一个常识性的错误,我加几行代码 (新增代码标记 "// <-------------------")。

using System.Data; using System.Data.Common; using System.Data.SQLite;
// 创建数据库文件 File.Delete("test1.db3"); SQLiteConnection.CreateFile("test1.db3");
DbProviderFactory factory = SQLiteFactory.Instance; using (DbConnection conn = factory.CreateConnection()) {   // 连接数据库   conn.ConnectionString = "Data Source=test1.db3";   conn.Open();
  // 创建数据表   string sql = "create table [test1] ([id] INTEGER PRIMARY KEY, [s] TEXT COLLATE NOCASE)";   DbCommand cmd = conn.CreateCommand();   cmd.Connection = conn;   cmd.CommandText = sql;   cmd.ExecuteNonQuery();
  // 添加参数   cmd.Parameters.Add(cmd.CreateParameter());      // 开始计时   Stopwatch watch = new Stopwatch();   watch.Start();      DbTransaction trans = conn.BeginTransaction(); // <-------------------   try    {     // 连续插入1000条记录     for (int i = 0; i < 1000; i++)     {       cmd.CommandText = "insert into [test1] ([s]) values (?)";       cmd.Parameters[0].Value = i.ToString();
      cmd.ExecuteNonQuery();     }
    trans.Commit(); // <-------------------   }   catch   {     trans.Rollback(); // <-------------------     throw; // <-------------------   }
  // 停止计时   watch.Stop();   Console.WriteLine(watch.Elapsed); }
 

1:socket VS remoting

    使用socket无疑是效率最高的。但是,在复杂的接口环境下,socket的开发效率也是最低的。故在兼顾开发效率的情况下,可以使用remoting来代替socket开发。并且:     1、Tcp通道的Remoting速度非常快。     你可以通过端口查看工具,发现remoting比直接socket传输的内容,应该是属于同一个数量级的。我的另一个担心是,大客户端数量的情况下,remoting传输效率会不会很低,结果经过现场测试,同时对300个客户端进行数据通信,不存在信息丢失情况。     2、虽然是远程的,但是非常接近于本地调用对象。     也就是完全符合面向对象思想。     3、可以做到保持对象的状态     直接使用socket传输机制,我们必须花大量的精力来处理异常、断网、死机等现象,使用remoting,这些工作会大大简化。

2:remoting vs webservice      1、webservice在framework2.0状态下只能寄宿于IIS等应用服务器中。微软直到3.0才提供了servicehost来寄宿webservice,这就极大地限制了webservice在使用中的灵活性。在framework2.0环境下,如果你有一个应用要脱离IIS而存在,就不得不抛弃webservice。(除非你想代码实现一个WEB应用服务器)     2、remoting可寄宿在你自己的代码中,也可寄宿在windows服务及IIS中。最大程度的提供了开发和部署的灵活性。     3、remoting在使用http通道的时候,也如webservice一样支持穿透路由。     4、remoting与websercie相比,提供双向通信。哪怕是将remoting寄宿在IIS中,也支持。     5、webservice客户端自动生成的代理类比较复杂。而remoting一般来说,都是手动编写客户端代码。     6、当然,webservice最主要优势是,它是一个行业标准,而remoting只是微软自己内部的标准,如果你的应用要脱离微软的平台,就只能使用webservice了。

3:remoting vs wcf     与wcf的比较,更多的是从平台的普及度上来说。在当前环境下,2.0的普及度还是最高的。如果哪一天3.0甚至4.0普及了,当然WCF是最好的。

4:最简单例子      下面给出一个极其简单的Sample: 4.1远程对象      首先,创建一个项目,名为 RemoteObject,该项目经过编译后产生的DLL文件要在remoting客户端的项目和服务器端的项目中被引用。该项目包含一个类 MyObject, 即 Remoting使用的远程对象,如下:

using System; using System.Windows.Forms;

namespace RemoteObject {     public class MyObject : MarshalByRefObject     {         private int i = 0;                  public int Add(int a, int b)         {             return a + b;         }         public int Count()         {             return ++i;         }     } }

4.2Server端      新建项目 RemoteServer(控制台), Server端要引用MyObject的DLL。

using System; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp;

namespace RemoteServer {     class MyServer     {         [STAThread]         static void Main(string[] args)         {             TcpServerChannel channel = new TcpServerChannel(9999);               ChannelServices.RegisterChannel(channel);               RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteObject.MyObject),                  "RemoteObject", WellKnownObjectMode.SingleCall);               System.Console.WriteLine("Press Any Key");               System.Console.ReadLine();         }     } }

4.3Client端      新建项目 RemoteClient(控制台), Client端也要引用MyObject的DLL。

using System; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp;

namespace RemoteClient {     class MyClient     {         [STAThread]         static void Main(string[] args)         {             ChannelServices.RegisterChannel(new TcpClientChannel());             RemoteObject.MyObject remoteobj = (RemoteObject.MyObject)Activator.GetObject(typeof(RemoteObject.MyObject),            "tcp://localhost:9999/RemoteObject");             Console.WriteLine("1 + 2 = " + remoteobj.Add(1, 2).ToString());             Console.WriteLine("i = " + remoteobj.Count().ToString());

             Console.ReadLine();         }     } }

SQL*PLUS(或称sqlplus)里除了我们经常使用的sql语句外,还有另外一些命令,它们通过对标题、列标题、页宽、页长以及时间等参数的格式化操作来控制sql语句的输出的内容和格式,常见的比如"set timing on”,"set heading off”等。

基本的SqlPlus命令

命令 说明
remark 注释
set headsep 标题换行
ttitle 设置输出页的头标题
btitle 设置输出页的尾标题
column 对sql语句中的列进行格式化处理
break on 通知sqlplus在输出结果中插入空格
compute sum 通知sqlplus计算小计
set linesize(line) 设置sqlplus输出的最大行宽 --
set pagesize 设置页面的最大行数
set newpage 设置页面之间的空行数
spool sqlplus屏幕的文件输入输出命令
  注释,同remark
-- 双杠,注释,同remark
set pause sqlplus屏幕输出结果时在页面之间停顿
save 保存当前session最近的sql语句至指定的文件中
host 返回到操作系统环境,类似!
start或@ 执行文件中的命令
edit 使用自定义的编辑器编辑指定文件
define_editor 自定义sqlplus里的编辑器
exit或quit 退出sqlplus

column

column是sqlplus里最实用的一个命令,很多时候sql语句输出的列宽度不合适而影响查看,都需要用到这个命令来更改select语句中指定列的宽度和标题。大部分时候,我们可以简写column为col即可,主要有以下两种用法:

  • 修改列宽度
    column c1 format a20 --将列c1(字符型)显示最大宽度调整为20个字符
    column c1 format 9999999 --将列c1(num型)显示最大宽度调整为7个字符
  • 修改列标题
    column c1 heading c2 --将c1的列名输出为c2

示例如下:

 未修改前的默认设置输出:
 SQL> select a.FILE_NAME,a.TABLESPACE_NAME,b.CURRENT_SCN from DBA_DATA_FILES a ,v$database b where a.TABLESPACE_NAME='USERS'; FILE_NAME --------------------------------------------------------------------------- TABLESPACE_NAME CURRENT_SCN ------------------------------ ----------- +DATAGRP/db/datafile/users.259.686941969 USERS 7.3498E+10 修改后的输出结果: SQL> col FILE_NAME for a45 --定义FILE_NAME列最大显示45个字符 SQL> col TABLESPACE_NAME for a10 --定义该列最大显示10个字符 SQL> col CURRENT_SCN for 999999999999 --定义该列最长显示12个数字 SQL> col TABLESPACE_NAME heading 'TBS_NAME' --定义该列输出标题为"TBS_NAME” SQL> / FILE_NAME TBS_NAME CURRENT_SCN --------------------------------------------- ---------- ------------- +DATAGRP/db/datafile/users.259.686941969 USERS 73497663251 SQL>

SQL> show sga

Total System Global Area 4198564584
bytes

Fixed Size 746216
bytes

Variable Size 2013265920
bytes

Database Buffers 2181038080
bytes

Redo Buffers 3514368

bytes

SQL> set line 100
SQL> show sga

Total System Global Area 4198564584 bytes
Fixed Size 746216 bytes
Variable Size 2013265920 bytes
Database Buffers 2181038080 bytes
Redo Buffers 3514368 bytes
SQL>

oracle数据库服务器=数据库+数据库实例。

        1.一个部分是Oracle数据库database。

              Oracle数据库database,包括有数据文件、控制文件、重做日志文件,都是一些物理上的文件。

        2.一个部分是数据库实例instance。

              数据库实例是一系列复杂的内存结构和操作系统进程,包括:

                      a.有数据库后台进程(PMON、SMON、DBWR、LGWR、CKPT等)

                      b.内存区域SGA(包括shared pool、db buffer cache、redo log buffer等)。

     

数据库与实例之间是1-1或者1-n的关系

在非并行的数据库系统中,每个Oracle数据库与一个实例相对应;

在并行的数据库系统中,一个数据库会对应多个实例,同一时间用户只与一个实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库正常运行。

在任何情况下,每个实例都只可以对应一个数据库。

原文地址:https://www.cnblogs.com/zhangruisoldier/p/4288212.html