質問テンプレっぽいもの ■どの様な問題が起きて、どんな結果を得たいのか? ■フロントエンド、バックエンドどちらの問題か? ■フロントエンドのプラットフォームは何か? ■バックエンドのプラットフォームは何か? ■フロントエンドはどの様なドライバ/ソフトウェアを使用してアクセスしているか? ■Oracleのバージョンは?(バージョンと一言で言っても、フロントエンドなのかバックエンドなのか色々ある)
>>1 乙。
毎回の事だけど補足ね。
OTNからダウソ出来るソフトは、使用期限がついているものの、これは紳士協定に
なっていて、機能的に使えなくなるというものではない。
データファイルや制御ファイル、ログファイルって、 どれかひとつでRAWデバイスにすると、全てのファイルをRAWデバイスにしないといかんの?
おけ、さんくす
まあ、混合はあんまりやらんけどね。
制御ファイルやspfileは普通のファイルの方がいいだろ。
ASMって、未知の機能で、なんか面倒だったんだけど 実際に使ってみたら、簡単で便利だってことがわかった。 ついでにRMANも覚えることができたし。 自分のPCで動かしてるORACLEもASMにしてみようかな。
WindowsとLinuxでは積極的に使うべきだね。 Unixでは、好みでいいと思うが。
どういう理由でASMをインスタンスにしたのか? 米オラクルの開発エンジニアと納得のいくまで議論したいね。 英語? 英検4級だから大丈夫だと思うけど、だめ?
ASMらくちんだけどなぁ、トラブルとマンドクセ それよりOSX版10gR2マダー?チンチン
ASMで管理した場合、データファイル(普通のOS管理)の出し入れって 簡単にできるのですか?それができないとなんか不安で。
普通のO/Sコマンドは通らんよ。 RMAN使えばコンバージョンは出来るけどね。
>>14 10g R2 の asmcmd を使えば管理はできるよ。
17 :
NAME IS NULL :2006/11/03(金) 17:10:34 ID:4bUUtL+9
ExpressEditionでNLS_CHARACTERSET を変更するにはどうしたらいい ですか? 色々やってみましたがわかりません。
> 色々やってみましたがわかりません。 何をやったの?
それより、Express Editionの制御ファイルってデータファイル(dbf)になってて v$datafileにも含まれてる理由がわかんないよー。
>>18 drop databaseしてcreate databaseしてみました。
そしたら、ORA-01092が発生してデータファイル等は作成されているんですが
ちゃんと最後まで処理が完了していないようです。
出来てる人っています???
XEは単純に「最大仕様の制限」だけにしてほしかったな。 機能的な違いがあると勉強にならない。
勉強用には、普通のバージョンを使う。 XEは機能的な制限があるけど、業務にもただで使えるバージョンだから。
>>20 漏れのところ(WinXP SP2, CPU Pen3)では問題なくSJIS DBを作れたよ。
ただし漏れの場合はデフォのDB(XE)を消さずに新たに作成した。
手順はこんな感じ。
1. XEサービス停止、XEサービスの起動を手動にしてからマシン再起動。
2. admin/NEWDB/{adump,bdump,udump,cdump,pfile}フォルダ作成
3. oradata/NEWDBフォルダ作成
4. iniファイル作成 (とりあえずadmin/NEWDB/pfile/init.ora に置いた)
(以降、コマンドプロンプトで作業)
> SET ORACLE_SID=NEWDB
> cd C:\oraclexe\app\oracle\product\10.2.0\server\database
> orapwd file=PWDNEWDB.ORA password=change_on_install entries=5
> oradim -NEW -SID NEWDB
> sqlplus "/ as sysdba"
SQL> CREATE SPFILE FROM PFILE=pfile='C:\oraclexe\app\oracle\admin\NEWDB\pfile\init.ora'
SQL> STARTUP NOMOUNT
SQL> CREATE DATABASE NEWDB …
SQL> @?/rdbms/admin/catalog
SQL> @?/rdbms/admin/catproc
SQL> quit
> sqlplus "/ as sysdba"
SQL> STARTUP
ちなみに 1.だけど、expressEditionってサービスが複数立ち上がらないように
物理的に制限されてるようだね。
しかも不便なことにサービス停止だけじゃダメで、再起動しないともう片方を
使用することができない。
24 :
20 :2006/11/04(土) 17:47:40 ID:???
25 :
20 :2006/11/04(土) 19:43:09 ID:???
ダメだった(TT create database時にORA-01092が発生してしまう。 ----------------------------------------- CREATE DATABASE NEWDB USER SYS IDENTIFIED BY sys USER SYSTEM IDENTIFIED BY system LOGFILE GROUP 1 ('c:\oraclexe\oradata\NEWDB\redo01.log') SIZE 100M, GROUP 2 ('c:\oraclexe\oradata\NEWDB\redo02.log') SIZE 100M, GROUP 3 ('c:\oraclexe\oradata\NEWDB\redo03.log') SIZE 100M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 character set JA16SJISTILDE national character set AL16UTF16 DATAFILE 'c:\oraclexe\oradata\NEWDB\system01.dbf' SIZE 325M REUSE EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE 'c:\oraclexe\oradata\NEWDB\sysaux01.dbf' SIZE 325M REUSE DEFAULT TABLESPACE tbs_1 DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE 'c:\oraclexe\oradata\NEWDB\temp01.dbf' SIZE 20M REUSE UNDO TABLESPACE undotbs DATAFILE 'c:\oraclexe\oradata\NEWDB\undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED; ----------------------------------------- これどっかマズイ?? >23 止めるサービスってOracleServiceXEだけでよいんですよね??
>>25 ごめん。具体的にどこが悪いのかはよくわからない。
(tbs_1のDATAFILE指定がないのは記述漏れだよね?)
とりあえず、漏れのほうはこれで作れてる。
-- iniファイル
*.compatible='10.2.0.1.0'
*.db_name='NEWDB'
*.audit_file_dest='C:\oraclexe\app\oracle\admin\NEWDB\adump'
*.background_dump_dest='C:\oraclexe\app\oracle\admin\NEWDB\bdump'
*.user_dump_dest='C:\oraclexe\app\oracle\admin\NEWDB\udump'
*.core_dump_dest='C:\oraclexe\app\oracle\admin\NEWDB\cdump'
*.DB_RECOVERY_FILE_DEST_SIZE=10G
*.DB_RECOVERY_FILE_DEST='C:\oraclexe\app\oracle\flash_recovery_area'
*.job_queue_processes=4
*.open_cursors=300
*.os_authent_prefix=''
*.pga_aggregate_target=40M
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=20
*.sga_target=140M
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS'
*.control_files='C:\oraclexe\oradata\NEWDB\control.dbf'
*.db_block_size=8192
-- create db 文
CREATE DATABASE NEWDB
LOGFILE GROUP 1 ('C:\ORACLEXE\ORADATA\NEWDB\REDO01.DBF') SIZE 20M,
GROUP 2 ('C:\ORACLEXE\ORADATA\NEWDB\REDO02.DBF') SIZE 20M,
GROUP 3 ('C:\ORACLEXE\ORADATA\NEWDB\REDO03.DBF') SIZE 20M
MAXLOGFILES 10
MAXLOGMEMBERS 2
MAXLOGHISTORY 0
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET JA16SJIS
NATIONAL CHARACTER SET AL16UTF16
DATAFILE 'C:\ORACLEXE\ORADATA\NEWDB\SYSTEM.DBF' SIZE 256M
EXTENT MANAGEMENT LOCAL
UNDO TABLESPACE "UNDOTBS"
DATAFILE 'C:\ORACLEXE\ORADATA\NEWDB\UNDO.DBF' SIZE 60M
DEFAULT TABLESPACE "USERS"
DATAFILE 'C:\ORACLEXE\ORADATA\NEWDB\USERS.DBF' SIZE 10M
SYSAUX DATAFILE 'C:\ORACLEXE\ORADATA\NEWDB\SYSAUX.DBF' SIZE 60M
DEFAULT TEMPORARY TABLESPACE "TEMP"
TEMPFILE 'C:\ORACLEXE\ORADATA\NEWDB\TEMP.DBF' SIZE 40M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 640K
/
あと、止めるサービスだけど、XEサービス止めないとNEWDBのサービスが
起動しないというだけだからORA-0192とは関係ない。
27 :
NAME IS NULL :2006/11/09(木) 01:54:53 ID:V4gf/njK
来年早々、会社でRACを導入する予定なんだけどさ、 本屋に行ってもRACに関する本って2冊しかないんだ。 しかも、どっちも内容がいまいち。(値段は高いけど) OTNからマニュアル落とすしかねえか。
31 :
29 :2006/11/11(土) 12:40:21 ID:???
osxなんて変態環境で動かすくらいなら、XPでいいよ。 おまいら、RACは何のOSで組んでる? HP-UXぐらいしか選択枝無い? 今更ソラリスって感じ?
オイラの実経験としては、こんな感じ。 HP-UX => 9i RAC (最大4ノード)、10g RAC (最大2ノード) Linux => 9i RAC (最大2ノード)、 10g RAC (最大2ノード) AIX => 9i RAC (最大2ノード) Windows 2000 => 9i RAC (最大6ノード)、10g RAC (最大2ノード) 太陽系は使ったことないや('A`)
34 :
NAME IS NULL :2006/11/16(木) 06:45:55 ID:klQ0Bo0L
WindowsServer2003にOracle8.1.7クライアントを入れて使いたいのですが、実際に入れてみると WindowsXPと認識しています。 もちろん、Oracle8.1.7のサポート対象にWindowsServer2003は入っていないということはわかっているのですが 実際の問題としてどのようなことが起きるかご存知の方、いらっしゃいますでしょうか。
>>32 「いまさらSolaris」いうなら、「いまさらHP-UX」も同じことだ。
これからは、RAC使うんならx86系(Linux、Windows、Solaris)ってことになるんだろうな。
SEのコア数上限が少し大きいとか、ライセンス料が安いとか。
ここで聞くのもどうかと思うのだが、元Oracleの木○さんて 現在、何をされているのでしょう!!
AIXなら無条件にDB2って訳でもないのか。 富士通とか日電に組ませると、自動的にHP-UXになるって訳でもないのか。 x86が安いのは分かってるけど、苦労することを考えると高くてもx86は避けたいのが現場の本音。 ミラクルとオラクルで組んでオラクル専用機器と割り切って扱うのが良いのかな?
自動的にHP-UXになるとは限らんと思うが。 多分、こちらから頼めばLinux(redhat等)にしてくれるとオモ。 友人が言うにはHPの鯖だとOSのインスコが楽らしいから、組む側からすると微妙ラシーク ただ、そのOracle組んでる友人からすると「Oracleのどこがいいか解らん、 設定めんどいし。DB2でいいだろ、っていうかむしろAS400を買ってくれ」らしい。(w まあ、漏れもOracleならソラリスだろ、って思うけどな…。
どなたか、centos4.3にInstantClientをいれて、perlのDBI+DBD::Oracleを入れる方法 教えておくれ。 DBD::Oracleのperl Makefile.plでうまくいかないんですよね〜。
>39 仮にも技術系板で >うまくいかないんですよね〜 などと書いて答えが返ってくると思ってるのか? いいからMakefile.plの実行結果晒せ。
>39 仮にも技術系板で >うまくいかないんですよね〜 などと書いて答えが返ってくると思ってるのか? いいからMakefile.plの実行結果晒せ。
二重カキコスマンカッタorz >39
43 :
39 :2006/11/18(土) 10:21:07 ID:???
44 :
NAME IS NULL :2006/11/19(日) 17:21:09 ID:M2XHbJ0g
重いSQLが動いても、システム全体が遅くならない方法ってありますか?
SQL鯖を停止させれば?
46 :
NAME IS NULL :2006/11/19(日) 20:07:16 ID:5l7MVBKi
上と同じ質問ですが Viewで10以上UNION ALLとSelectでFuctionをたっぷりつけてるアホsqlどうすればいいんでしょか? Viewを小分けにしろ?それは結構工期がかかってできない...
48 :
NAME IS NULL :2006/11/19(日) 21:32:28 ID:44SU/418
Oracleって時間のかかるクエリは実行させないって機能ないの? DB2にはあるんですけど。 で、DB2使いから素朴な質問なのですが、 HP-UX+Oracle8.1.6でS-JISなDBがあるのですけど、 バイナリで0x20(' 'ASCIIコードで半角ブランク)なデータをCHAR(1)なカラムに送ると そのカラムはnullになるんですか? 業務でOracleの人がCOBOLで生成したようなパック十進数とASCII文字が 混在の固定長バイナリ送ってきたんですけど、Oracleで上記のデータを ロードするとnullになるらしく、DB2でロードすると' '(半角ブランク)になって イヤーンな状態なのですが…。
>>48 DB2なんか使うから悪い。己の不幸を呪うが良かろう。
>>49 え、いや悪いもなにもこの場合はOracleの動作がおかしいのでは?
一瞬、「これなんてMS Access?」って挙動に思えるのですが。
insert into hoge(CHAR_1_COLUMN) VALUES(' ');
と
insert into hoge(CHAR_1_COLUMN) VALUES(null);
とが同じ結果になっていると言う状況なんですけど。
>>50 Oracleのchar形についてはそういう動作をします。
空文字とnullの区別が無い。(こう書くと突っ込まれるけど)
DB2は嫌いだけど、この辺に関してはOracleが間違っていると思う。
ちなみに、NUMBER型に対しても、''(長さ0の文字列)でNULLとして代入できる。 しかし、Oracleでも半角ブランクは半角ブランクで、決してNULLではない。
53 :
48 :2006/11/19(日) 22:40:41 ID:???
DB2は融通がきかないので嫌いな人も多いだろうとは思いますけど にしてもOracleのCHARの挙動は違うと思いますが。 そもそもDB2はNUBMER(DECIMAL)型に対して''ってinsertしようなら クエリが例外返すけど。 ちなみにCHARが半角ブランク(null?)のテーブルに select count(*) from hoge whre CHAR_1_COLUMN = ' '; って照会したら見事に0件でしたけど…。ナニコレ。
Oracleは、''(長さ0の文字列)はNULLなんだって。 つまり型に関係なく(CHARだろうがNUMBERだろうが)代入できてしまう。 NULLで代入されているから、where hoge = '';で検索されない。 これはそういう仕様なのでしょうがない。あきらめるしかない。 で、それとは関係なく、 insert文が作られた時点ですでに半角ブランクが、''になってしまっている可能性が高いんだから、 ロードするプログラムをまず見直してみる必要もある。 っていっているわけだが。
55 :
48 :2006/11/19(日) 23:11:24 ID:???
>>54 説明ありがとうございます。
いや、不思議なのはお客の要望と言うかコード表には
'1':区分1
'2':区分2
' ':その他区分
null:null
と定義つけられていて、顧客から投入されるデータは半角ブランク
なので、そのとおりにデータをロードしたら、Oracleだけが結果が
違うので、ハァ?と思ったしだいです。
しかし普通nullってnull領域にフラグを持つかカラムを0x00でフィルするのが
一般的(?)だと認識していたので、Oracleの仕様には驚きです。
まあ、半角ブランクをコードに使用するテーブル設計も頭悪いとは
思うのですが、昔ながらの人は結構好きっぽいので悩みます。
VARCHARでそういう挙動は納得できない事もないですけど…。
ロードするプログラムはこっちで見直します。と言うかOracleに
CSV作らせます。(w
57 :
48 :2006/11/19(日) 23:47:42 ID:???
>>56 いや、Oracleの仕様は理解しました。
ただOracleが現状間違った仕様(?)でも、もう実稼動に入っており、
今更Oracleのテーブルに対してどーこー言っても仕方ないので
DB2をOracleにあわせます。
今回は顧客から「OracleトロいからDB2で動かせない?」が発端の
案件なので、顧客がOracle慣れしているのでなるたけOracleに
合わせる事にします。
たしかMS-Accessのフォームからブランク1つを入力しようとしても勝手に右側がTrimされて結果NULLになってしまう。 そういう話をしてるんじゃないの。プログラムから操作すればブランク1つは入力できる。
59 :
48 :2006/11/19(日) 23:59:22 ID:???
えと、顧客の環境はまず基幹システムのホストがあって、ホストに本来のデータが あり、サブシステムとしてOracleとかDB2があり、そしてサブシステムである Oracleに対して顧客がAccessで簡単なクエリを投げてデータを分析する と言う流れです。 で、ホストの時点で半角ブランクが入っているはずなのに、Oracle(だけ)で消えている。 と言うのが今回の事象です。Accessからデータを投入する事はあまりありません。 まあ、Accessも半角ブランクと思ってnull送っているから、今のところ問題が 出てないのだと思います。たぶん。 #まあ、そこのOracleチームはよくデータセット間違えるのでそもそもが信用ならないですが(w
char形だったら insert into XXX (COL1) values(''); insert into XXX (COL1) values(' '); insert into XXX (COL1) values(NULL); は同じ動きするでしょ
61 :
48 :2006/11/20(月) 00:22:41 ID:???
>>60 試しに家のDB2で実行してみますた。
select count(*) from hoge where COL1 is null;
結果:1
select count(*) from hoge where COL1 = '';
結果:2
select count(*) from hoge where COL1 = ' ';
結果:2
です。
ここら辺は方言だと思いますがDB2はクエリ投入時に
値を省略されると前もって設定されたデフォルト値が
セットされるので、デフォルトのデフォルト値(?)が
CHAR型の場合はブランクなので空白ブランクがセットされます。
CSVで見てみたら
-----ここから----
" "
" "
-----ここまで----
でした。
まあ、そういう事で。
SQL> CREATE TABLE test 2 ( M0101 number (2,0), 4 M0102 varchar2 (3) , 5 M0103 char (3) ); 表が作成されました。 SQL> SQL> INSERT INTO test VALUES ('','',''); 1行が作成されました。 SQL> INSERT INTO test VALUES (1,' ',' '); 1行が作成されました。 SQL> SELECT * FROM test WHERE M0101 = ''; レコードが選択されませんでした。 SQL> SELECT * FROM test WHERE M0102 = ''; レコードが選択されませんでした。 SQL> SELECT * FROM test WHERE M0102 = ' '; M0101 M0102 M0103 ---------- ------ ------ 1 SQL> SELECT * FROM test WHERE M0103 = ''; レコードが選択されませんでした。 SQL> SELECT * FROM test WHERE M0103 = ' '; M0101 M0102 M0103 ---------- ------ ------ 1 SQL> SELECT * FROM test WHERE M0101 IS NULL; M0101 M0102 M0103 ---------- ------ ------ SQL> SELECT * FROM test WHERE M0102 IS NULL; M0101 M0102 M0103 ---------- ------ ------ SQL> SELECT * FROM test WHERE M0103 IS NULL; M0101 M0102 M0103 ---------- ------ ------ SQL>
63 :
60 :2006/11/20(月) 00:33:03 ID:Gzz+3k/K
>61 うん、DB2はそうなるよね。 やっぱりこの辺はOracleが変だと思う。 (とか言ってOracleでテストしたら>60の通りにならなかったら恥ずかしいけど)
64 :
48 :2006/11/20(月) 00:35:20 ID:???
>>62 実験ありがとうございます。
ちゃんと' 'もinsertしselectされる場合もあるのですね。
しかし、nullと''の挙動は個人的には好きくないです。
で、もう寝ます。おやすみなさい。
65 :
60 :2006/11/20(月) 11:08:55 ID:Gzz+3k/K
以下oracle10gでテスト create table TESTTBL1 ( KEY1 numeric, COL1 char(1) ) insert into TESTTBL1 values (1,null); ・・(1) insert into TESTTBL1 values (2,''); ・・(2) insert into TESTTBL1 values (3,' '); ・・(3) ■CSVで出してみた ------------------- "1","" "2","" "3"," " ------------------- ■検索してみた select * from TESTTBL1 where col1 is null →(1),(2)がHIT select * from TESTTBL1 where col1 = '' →検索結果0 select * from TESTTBL1 where col1 = ' ' →(3)がHIT おいら、勘違いしてました。orz
66 :
48 :2006/11/20(月) 22:40:06 ID:???
と言いますかOracleにNUMERIC型があることも驚きだったり。 しかも数値項目なのに""付きでCSV作るんだ…。 #解らなくもない仕様ですけど、 しかしCOBOLerやホスト上がりの人がOracle使うと 独特の世界に驚くだろうなぁ。 と言いますかだからウチのOracle管理チームはOracleの全カラムが NULL可で主キーなしでテキトーにindex貼ってあるだけなのか…。
Oracleを含め、RDBMSから入った人間にとっては階層型DBの方が 訳分からないけどね。 ホスト上がりの人が、そのまま設計すると、ひとつの表にカラムが 50ぐらい作ってあって、それがすべてVarchar2で出来ていたなんて 話もザラ。 それでパフォーマンスが出ないとかってキティな事を言う。
うちの奴はひとつのテーブルに100ぐらいカラムがあって全部Numberだな 速度でねぇよwといつもいってるよw
69 :
NAME IS NULL :2006/11/21(火) 01:10:59 ID:oMxqKf+1
客が、間違ってデータを消した。 今朝までのデータバックアップは残ってるんだが、昼過ぎからのデータが重要だったらしく、どうにかならないかと言って来た。 誰が、何時に消したかも知りたいらしい。 わかるもんなの?
>>69 ( ・∀・)つArchivelog Mode + Logminor
( ・∀・)つRMAN + Point-In-Time Recovery
俺、一度表の定義を変えてパフォーマンスがめちゃくちゃ悪くなった事があってさ。 誰が変えたのかを探すよう俺が言われてしまって・・・Σ(゚д゚lll)ガーン 犯人は当然分かっていたんだけど、Logminor使って分からなかったら、黙って おこうと思ったんだけど、実際に使ってみたらものの見事に俺の使っていた 端末が出てきてしまって、仕方なく観念したよ・・・。
74 :
NAME IS NULL :2006/11/21(火) 09:53:37 ID:0SmuBuhM
>69です。 バージョンは9iです。 9iでもログが見れるかどうか試して見ます。 ありがとうございました。
>>74 9iでもLogminorは使えるよ。
面倒なツールではあるけれど、バージョンとプラットフォームさえ同じなら、
テストインスタンスにArchivelogをコピーして解析とかも出来る。
log-miner
77 :
NAME IS NULL :2006/11/22(水) 00:03:39 ID:OVUyKwp6
フリーのLinuxにoracle10gを入れたいと思います。 簡単に入るディストリビューションは何でしょうか?
>>77 White-Box、Centでは9i/10g RACまで組めるのを確認したことがある。
>>78 Centは大丈夫なんですね。
ありがとうございます。
共有ディスクは FireWire? SCSI? RACに挑戦してみようかな?
SCSIだったよ。 まあ、それとその気になればVMWareでもCentとWhiteBoxでRAC組める。 遊び環境として、4 CPUのLinux鯖上にVMWare入れて2 Nodes RAC組んで、 VMWare動かしているLinux鯖上にはデータガードのロジカルスタンバイ作った。 一台でRAC+データガードが出来るから、遊ぶには十分。
VMWare より Xen のほうが軽いかな。 RAC + DataGuard + GridControl とか。 ここまでくると趣味だね。
>>54 NUMBER型にnullが入っている行を select した場合
この値は null で返ってくるの?
Java からDB接続していて、取得したNUMBER型の列を数値型でキャストしてるんだけど
nullが入っているデータは、キャストエラーが発生しちゃってる。
空文字で返ってくるって事はないよね?
MySQL だと同じデータでも null が返ってくるので、それをキャストしても例外は発生しないんだけど。
(代わりにその後の処理でヌルポが発生してるけど・・・)
俺もVMwareでRACにチャレンジしようと思ってるんですけど ORACLE10gだと1GBのメモリが必要になるんですね。 ってことはですよ、2ノードだと2GB必要で、ホストOSの分も 合わせると、3GB位は実装する必要があり。。。。 そんなにメモリ増設する金がないです。
86 :
84 :2006/11/23(木) 12:05:18 ID:???
10gのR1だと512MBでインストール可能なんですけど 10gのR2だと1GBのメモリがいるわけで。。。。 それから、寝る前は糞じゃなくてオナーニしてます。 最近は、安藤サヤカの画像で抜いてます。いいですよ〜!
安藤サヤカってKOTOKOや椎名へきると似てますよね。かわいい。
オラクル10gを使用しているのですが、バックアップはRMANでするのが一般的なのでしょうか?
うんにゃ。
RACって、どういったシステムに使うんですか?
91 :
NAME IS NULL :2006/11/23(木) 17:27:03 ID:3WEZ3cLu
管理を楽(RAC)にしたいシステム
そりゃラックマウントサーバに使うに決まってるじゃん。
普通に4GBぐらいメモリ積むよな。 DB2はゴミ。 Oracleで遅いって、ハードが遅いとかRACにしてない悪寒。
94 :
48 :2006/11/23(木) 20:14:42 ID:???
>>93 そんなのHP-UXでOracle8.1.6を使いつづけているチームに言ってください。w
ウチのはDB2と言ってもUDBでないRS/6000の微妙なヤツなんで
そんなに早くないと言うかトランザクションが100個くらい走っても重くならんだけだし。
そこそこのDBAがカリカリにチューンしたOracleだと最大瞬間風速(?)
はOracleの方が上だと思う。
ただ、なんにせよDBの速い遅いはいいチューナーとDB設計の方が
比重が大きいと思う。
正直、そこのOracleチーム相手だったら漏れがカリカリにチューンした
MySQLの方が速度出せると思うし。
MySQLやPostgresなら無料で利用できるのに 数百万もするOracleを使う理由って何ですか? 単に安心感だけ? まぁ、大企業にしてみたら、Oracle費用なんて 屁みたいなもんか?
サポート面、機能面が大きいと思うけど。 フリーじゃ安心して使えない。 サポートは高いけど、すごく親切だしね。
有償ものだとオラクルとSQLServer、DB2が有名が有名ですが なぜ、オラクルが圧倒的人気なんでしょうか? SQLServerはWindowsだけなので、環境によっては使えないと思いますが、 DB2とオラクルはよく似てると思います。 差は何ですか?
98 :
48 :2006/11/23(木) 20:52:42 ID:???
>まぁ、大企業にしてみたら、Oracle費用なんて >屁みたいなもんか? その後の開発費用とか保守費用とかでウン百万、ボッているから Oracle費用が屁とは言わんが、システム全体を数年使う事を 考えるとたいした額でもないな。 あと、フリーが安心して使えないとは思わんけど、困ったときに 自力で解決できる兵(つわもの)でないと使えないのはあるな。 とは言えDB2使っているとあまりの情報の少なさに、 サポート無くてもいいのでMySQL使いたいと思う事は激しくある。(w あとMySQLも今はエンタープライズ商売しているので お金払えばサポート受けれる。受けた事ないけど。
Oracleが一番早くUnixに目をつけてスタートダッシュに成功したってことじゃないかな?
100 :
48 :2006/11/23(木) 21:04:31 ID:???
>DB2とオラクルはよく似てると思います。 >差は何ですか? 正直、似てない。 思想が違うとオモ。 以下は個人的な意見 DB2は基本的にIBMのハードと技術員込みで買うモノ。 そしてIBMの関連子会社の営業はムカつくヤツが多い。 ただ贔屓目もあるが大抵の会社にOracleは必要ない。 DB2の方が値段安くて使いやすい。そして安定しているとオモ。 オマケもいっぱいつけてくれる。 Oracleはソフトウェアベンダーが良く指名してくるのが 人気の秘訣だと思う。あの資格商売は個人的にどーかと思う。 なんにせよとりあえずユーザーが多いのが強みで 営業も「Oracleにしとけば大丈夫」と魔法の呪文の様に 使うし、営業的に数字が大きいので売る気がでるらしい。 納品する技術者からすると「DB2(OS/400)の方が楽でいい」と 言うくらい初期導入がマンドクセらしい。
オラクルゴールド所持者が、バックアップの取り方も知らなかった。 あの資格って意味あるのかどうか。
>>98 > あとMySQLも今はエンタープライズ商売しているので
今は?
ずっと昔からやってるが。
まぁ俺は Oracle 使うけどね。SE One とか SE なら安いし。
104 :
48 :2006/11/23(木) 21:27:59 ID:???
>>103 いや、10g。
RMANとか何も知らなかった。
本だけで受かって、実務経験は無いんだって。
簿記のように、実務に沿った試験にすればよいのにね。
106 :
NAME IS NULL :2006/11/23(木) 22:27:26 ID:vAKY1SSE
俺もGoldもってるけど、開発なんでバックアップはしらんな。。 Goldもってることをプレッシャーに頑張るためにとったって感じかな。
ユーザが多いってのは実績があることであり、ノウハウ持ってる香具師が多いってことでもある。 DB2なんてマイナーDBではIBM方面しか選択しないし、競争も無いから延々ボラレ続ける。 業務システムとかだと、企業の根幹の金絡みだから、システムが止まりましたとか、数字が合いませんじゃ駄目だと思う。 そういうときに、すぐエンジニアが飛んでこないMySQLと、SIerのエンジニアが飛んでくるオラクルでは、金出してくれる決済者の経営者の評価も違うでしょ。
108 :
48 :2006/11/23(木) 23:07:28 ID:???
>>107 まー、世間ではそのように評価されているのでOracleが突っ走っているワケだが、
真にユーザーが多く実績がありノウハウ持っている香具師が多いなら、
DB2使いの漏れがOracleのシステム開発&指揮をとらされる事もないんだが。w
今、あいつらの開発中のソースの90%はDB2/400で出来てるよ…。
MySQLはまー、その通りだが、ウチのOracleチームは普通で数字間違えるし、
JOBは平気で半日ほど止めるしな。デスマ続きで正常な判断力がないんだろうが。
ある程度まともトコからDB2(IBM)を仕入れればそんな事はIBMの意地にかけて
止まる事もないしシステム的な障害はOracleに比べれば少ない、つーか無いに近い。
ハード込みのシステムだから当たり前だが。
ただ、IBMのボラれる辺りは真実だな。
技術畑連中はいいんだが本家IBM以外の営業関連のヤツは寝言が激しい。
MySQLはなんか変な方にいっちゃったな。 わざわざ金出して、MySQLなんか使いたくないし。 かといって、Communitiy版(実験版)なんか絶対使いたくないし。 お手製のやつは、根こそぎPostgreに乗り換えるか。
Fedoraとredhatみたいなモンだしなぁ。 まあ、漏れは使い方が甘いのかFedoraでもカーネルパニック なんかお目にかかったことないけど。
>>88 RMANを使いこなせるのなら、楽でいいと思うぞ。
俺も最初は「なんだ、この糞ツールは?」と思っていたけど、
DuplicationやらDB Block Verify機能とか意外と役に立った
経験があり。
まあ、DB止めてもいいのなら、何にも考えずにコールドバック
アップが楽なのかも知れないけど、不完全回復してDBを
open resetlogsで開く時に、ドキドキするなんて事があっても
いいんじゃないか思うw
俺の8年に渡るOracle DBの実務経験でも、Production環境を
Open resetlogsで上げた事は3回しかないけどねw
>>90 高い鯖を買えないけど、中くらいや小さい鯖を複数買って大規模ユーザーを
サポートしたい人達や、一個インスタンス死んでも大丈夫なようにHAを重視
したい人達が使っているね。
ゲームのFF IXの鯖もRACだった記憶があるよ。
IBMの意地にかけてまともなシステム作ってくれる ある程度まともトコってどこ? オラクルの維持にかけて(以下略
>>113 目の前の金か、あとに続く甘い汁がないと(以下略
Ver8.1.7です。 MAX関数を使用するときに、カラム名にAS区を使用し、MAX値を 取得したカラム名と同じ名前をつけると、上手く処理ができません。 例: テーブル:T カラム:C SELECT MAX(C) AS C FROM T のような場合に、MAX値ではなく、全レコードを取得してきます。 私の環境に依存しているのでしょうか?
>>115 自己レスです。
oo4oの場合のみでした。
もう少しぐぐってみます。
Cを""でくくってみるとか? もしくはasはずしてみるとか? 一応参考までに9iでの結果を載せる。 SQL> select max(bytes) from v$datafile; MAX(BYTES) ---------- 2097152000 SQL> select max(bytes) as bytes from v$datafile; BYTES ---------- 2097152000 SQL> select max(bytes) "Bytes" from v$datafile; Bytes ---------- 2097152000 SQL> select max(bytes) as "Bytes" from v$datafile; Bytes ---------- 2097152000
ASMつかうとRMANでしかバックアップできねーっつうのもアレだな まあRMAN楽だとは思うよ。最初だけ激しくダルいけど、覚えちゃえば便利
119 :
48 :2006/11/24(金) 18:42:55 ID:???
>>113 まともな営業がいて、まともな開発がいて、まともな運用がいる会社。(w
IBM特約店かどーかはあんまし関係ないとオモ。
漏れの運が悪いだけかもしれんがJBCCですら半数以上はアフォがいる気ガス。
Oracleはパートナーとか特約店とかあるんだっけ?
win版Oracle9iのバックアップとリストアについて質問です。 マシン入れ替えで現在ドライブD:で動いているデータベースを別のマシンのドライブC:にコピーしたいんですが どうすればいいでしょうか。 oracleはまったくの素人でどこから手をつけていいかわかりません。
Cドラにコピーするのもあれだが、そもそもウィンドウズの時点で(ry
素人にH/WのMigrationをさせるというのもなんだねぇ・・・。 現実的なものとしては、オラクルのソフトウェアをインストールした後に・・・ a. 新しい鯖上で新規DB作成後にExport/Import (簡単だけど時間はかかる) b. oradim使ってサービスを作成後、全データファイル、コントロールファイルをコピーして DBをマウントモードで起動してから、ファイルの位置をRename (まあまあ、簡単) c. .oradim使ってサービスを作成後、データファイルだけをコピーしてコントロールファイルの 再作成 (まぁまぁ簡単だし早い) d. RMAN Duplication (使われていないブロックはコピーされないから早いけど難易度は高い)
Cドラにデータ置いたらさ、システムのスワップファイルが作られるたびに書き込めなくなったり速度落ちたりしないか?
124 :
NAME IS NULL :2006/11/25(土) 18:41:44 ID:my0eYT2b
コールドバックアップならRMANは必要ないんですか? いつも、DataPumpExportで取得してるんですけど。
必要ないね。 大体RMANはインスタンスがマウント状態以上でないとバックアップは取れない。
RMANってGUIで使えると書いていたんですが、マニュアルはあるのでしょうか?
ウィンドウズにウイルスソフト入れるのは鉄則。つーか社内規定で決まってる。 オラクルってウイルスソフトで駆除されたりするの?
>>128 Anti VirusとVirusの区別をつけられる呼び方した方が良いぞ。
130 :
NAME IS NULL :2006/11/26(日) 16:13:30 ID:bCvUbFDN
>>128 うちの会社じゃウイルスソフト入れておいて、Oracleのデータを入れるパーティションは検索対象外に
していますよ。
だから、どうしてもCドライブには入れておけないんですよね。
>>122 ありがとうございました。
無事aの方法で移行できました。
>>123 そうなんですか。まあ、あまり使わないテスト環境なので大丈夫でしょう。
Solaris on x86版のOracle10gってOTNのアメリカのほうにしかない?
普通はsparcしか使わないからねえ。 x86でよければミラクルで良いじゃん。日電でも富士通でも丸ごと面倒見てくれるよ。
MAX(DISTINCT 列名) ってどういう意味ですか? 重複しない、最大値を取得??
>>135 それであってる。実用性はなさそうだけど。
よく使うのは COUNT(DISTINCT 列名) とか。
137 :
NAME IS NULL :2006/11/29(水) 20:31:11 ID:9HeSHKfV
UNIX版Oracle7.3.4をLinuxで動かしたいのですが、どなたかご経験ありませんか?
>>135 ありがd
既存の根幹SYS改修中で、何か意味があるのかと思って
子一時間悩んだ・・・。
139 :
138 :2006/11/29(水) 20:48:25 ID:???
最大値を取るのに DISTINCT するかしないかは無関係だと思うけど。 作った奴はよほどのアホだね。
漏れは、 SELECT DISTINCT a,b,c FROM tbl ORDER BY a,b,c というものを突きつけられて悩んだ。 ORDER BY は 必要か不要か?
必要。 無くてもOracleを含め大抵の処理系はその順番で並んでいるが、 ORDER BY なしで並び順は保障されないのが建前。
>141 DISTINCT a,b,cってことは「a,b,cの組み合わせで一意」だお だからa列だけ見れば同じ値が複数行に現れる可能性だってあるお
>>141 ORDER BY と書かれていても処理がスキップするから
ORDER BY と書くのが大人のマナー
自殺と通知されても保険金支払いには
自殺と通知しないのが高利貸しのマナー
145 :
NAME IS NULL :2006/11/30(木) 19:59:37 ID:+EMnfi/S
ちょっとトラブルです。ver9iです。 DB構築しようとCREATE DATABASE文実行したら、エラーが出て失敗。 オラクルエラーと一緒にOSのエラーも出たので見てみると、 キャラクタデバイスの権限がないみたいな事を言っているので ひとまずアクセス権を与えて、再度sysユーザで入ろうとしたら、 入れません。 ちなみにプロセス上がってます。 再作成するにもsysユーザでログイン出来ないことには。。。 どなたか対処法をご教示お願いします。
146 :
NAME IS NULL :2006/11/30(木) 21:21:42 ID:sCDWundV
今度オラクルシルバー受けようと思ってるんですけど ゼロからだとどのくらい勉強すれば合格しますか?
147 :
NAME IS NULL :2006/11/30(木) 21:50:24 ID:YQx+oXB3
ORA-XXXXに何がでてるかわからんが。。。
>>145
148 :
NAME IS NULL :2006/11/30(木) 22:13:00 ID:YQx+oXB3
プロセスを停止してみる。(shutdown abort) と書いてみた。
149 :
NAME IS NULL :2006/11/30(木) 22:40:11 ID:+EMnfi/S
確か ORA-301 ORA-1503 ORA-27041 OSのエラー だったと思います。 いろいろ試しても埒があかなかったので、 無茶と承知で対象プロセスをkill、制御ファイル削除、 パスワードファイル再作成してみたのですが sysユーザでログイン出来ませんでした。。 自分ではDB作成前の状態に戻り、再ログイン出来るかと思ったのですが。。。 そもそもキャラクタデバイスのアクセス権が無かっただけで 何でログイン出来なくなるんでしょうか?
DB作成前なんだろ? そんなお上品なことしないで、プロセスKillっちまえばいいじゃん?
全プロセスKillって、それからstartup nomountであげれないのか?
152 :
NAME IS NULL :2006/12/01(金) 09:50:40 ID:eA/dAjrd
いやそれが、 環境変数ORACLE_SID設定 sqlplus /nolog connect sys/dba as sysdba とやっているのですが、つながりません。。 パスワードをchange_on_installに変えてもダメです。 失敗したインスタンス名は認識してくれないのでしょうか?
つながりませんだと分からないからエラーとか書いてもらえると 共有メモリ上にプロセスが残ったぽいから、1度リブートしてみるとか。
connect時のエラーメッセージを書け dbaグループ osdbaグループに属しているアカウントではどうだ? OSは何だ
155 :
NAME IS NULL :2006/12/01(金) 10:38:27 ID:eA/dAjrd
>>153 サーバリブートは他で試験しているのでちょっと無理です。
共有メモリに残っているかってどうやったら見れます?
>>154 接続時のエラーは権限が不足していますが出てます。OSはHP-UXです。
CREATE DATABASE実行するときにはsys/dbaで入れました。
>>155 dbaグループ osdbaグループに属しているアカウントではどうだ?
157 :
156 :2006/12/01(金) 11:13:03 ID:???
osdba は Windows だけで 名前も oradba の間違いだった。 スマソです。 HP-UX なら dba グループに所属するアカウントを使って OS認証でログオンする % sqlplus /nolog SQL> connect / as sysdba
>>155 ipcsで残っているか確認、ipcrmで削除出来る。
ipcrm oracleでぐぐったり、manページで確認。
159 :
NAME IS NULL :2006/12/01(金) 13:35:17 ID:eA/dAjrd
元々、複数のインスタンスが起動しているので、 ipcs実行してもどれがどのインスタンス なのか見極められません。 全部所有者はoracleと表示されてしまうので、、、 今とりあえず、インスタンスに割り当てようとしてたディレクトリ、lvolを削除してみました。 一番はじめからやってみようかと。
oraアカウントじゃないのか。。。 リナックスで動かしてる時点で信頼性を損なう。
161 :
NAME IS NULL :2006/12/03(日) 08:21:51 ID:jHKXe0y/
ORACLE 10Gの値段っておいくRぐらいですかね....
162 :
NAME IS NULL :2006/12/03(日) 08:49:40 ID:hjLK3wUG
>>161 CPUライセンス?
1CPU500万くらいじゃないの?
163 :
161 :2006/12/03(日) 12:20:25 ID:jHKXe0y/
11G待ちにしようか やめようか会社として悩み中です 10Gにないものが多い気がする
個人的な見解ですが、使えるのはR2から 特に新機能
10Gって、外部結合がらみでバグ多くないですか? マスタとJOINしてコードから名称持ってくるようなときにレコード数がおかしかったり・・。 SELECT句に持っていけば良いみたいなんだけど。
167 :
161 :2006/12/04(月) 23:31:28 ID:MYOQKPHk
>>164 ,165
どうもです SEでいいかな... しかし高いな
Oracleで見積もりとか出したことないけどuser 分とられるの?
200人規模で実使用者は130人ほどどうでしょ??
金額が気になるならとりあえずpostgresかMySQLでも使っとけ。 貧乏でもOracleがいいっていうんならExpressEditionって選択肢もあるぞ。 まぁサポート料とか安心とかの金額だけどな。
>168 残業中か?プッ
170 :
NAME IS NULL :2006/12/05(火) 21:12:08 ID:QKTSK6i8
すいません、初歩的な質問ですが、セミコロンで区切って複数のSQLを実行するにはOracleでは どう記述するのでしょうか?なぜか検索しても出てきません。
> セミコロンで区切って複数のSQLを実行するには 意味がわからないんだけど。
172 :
170 :2006/12/05(火) 22:08:57 ID:???
>>171 すいません、マルチプルステートメントとかバッチクエリとか言われてるものです。
ずっと検索していたらやっと見つかりました。。orz
>PostgreSQL、Microsoft SQL Serverなどがこれをサポートしている。
無名プロシージャはどう?
オラクル9iGoldを持ってるんだけど10gに移行すべきなの?
175 :
NAME IS NULL :2006/12/06(水) 00:10:20 ID:k+sphHjH
RAWデバイスについてお聞きします。 RAWデバイスは、UFSのファイルシステムに比べて、どれだけパフォーマンスが向上するかベンチマークで試された人はいますか? Oracleのインストレーションガイドでは、RAWについての記述はあるのですが RAWを使用時の注意点ばかりで、具体的なパフォーマンスについては記述されてませんでした。 また家にあるショボイUNIX機器で試してみたのですが、特に変化が見られないのです。 RAWの効果は目に見えないくらい微小なものなのでしょうか? よろしくお願いします。 -------------------------- Oracle10.0.1.0 Solaris8
RAW Devicec使用時にパフォーマンス向上が見られる状況というのは 当然I/Oバウンド及びCPUバウンドの時だけで、それ以外の時では 大差がないのは当然。 TPC-CベンチをHP-UXで取った時には、RawとFile Systemでは平均 して5〜10%ぐらいしか違わない。 ただしダブルバァッファのオーバーヘッドが無い分、同じプログラムでも CPUの使用率が5%近くは下がる。
RAWかその他かの違いなんて今はたいした問題じゃないよ。 ディスクドライブのランダムI/Oの遅さが先に問題になる場合が多い。
HPのプラットフォームでinit.oraの中でhpux_sched_noageをセットしている人ってどれくらいいる?
トリガでDB起動時にtruncateしたいんですがなんとかできませんかね トリガでプロシージャ呼び出してもだめっぽいしなんとかできない?
DB起動時に発生するトリガ内でできなかったってこと?
そう。 create trigger startup の中で hoge.プロシージャを呼び出す。 プロシージャ内部ではtruncate tableとalter rename tableを行っているが truncate実行時に失敗する。 なんとかしてDB起動時にテーブル内を削除したいわけだが・・・。 なんとかならんものか
182 :
175 :2006/12/07(木) 00:11:43 ID:J9p9JP33
>>176 ,
>>177 ありがと。
CPUやディスクIOのリソースが十分なうちは、効果がはっきりとは表れないということですね。
しかし、聞いていた以上にRAWデバイスは管理し難いですね。
DBだけでなくOS絡みでも玄人でないと、RAWはやらない方が良いかと思いました。
>>182 そんなにRAWを毛嫌いする必要はないと思うけどね。
基本的にO/Sではdd、DBではRMANがあればあんまり意識しなくてもいいかと。
RMANさえあれば、RAW<=>ファイルシステム<=>ASMも簡単にコンバートできるし。
184 :
NAME IS NULL :2006/12/07(木) 01:13:48 ID:QBumZw87
RMANの使い方を詳しくのってるマニュアルか本を教えてくれませんか? お願いします。
185 :
175 :2006/12/07(木) 01:15:59 ID:???
>>183 >そんなにRAWを毛嫌いする必要はないと思うけどね。
個人的にはやってみたいんだけどねw
ただパフォーマンスも大きく変わるわけでは無いし、
システムを収めてからは、Oracleには詳しく無いインフラサポートチームが運用していくことになる。
それを考えた場合、果たしてRAWを選択して良いものかと思いまして・・・・。
(ちゃんとドキュメントを作れば良いことかもしれませんが。)
私自身がRAWについて、まだまだ無知なところがあってナーバスになってるだけかもしれません。
OracleでのRAWの扱い方について記述されたマニュアルなり本などがあれば良いんですけど、なかなか無くて手探りな状態です。
というか、UNIXについてすら初心者状態なんで、道は険しいですね^^;
何とか足掻いてみます。
確かにlsやcpなどの一般のUnixコマンドが通らないというのは、 ハンデかもね。 RACでもクラスターファイルシステム使うのが多くなってきているし。 ただDB+Unixで、RAWを使う方法も経験しておいて損はないと思うよ。
188 :
NAME IS NULL :2006/12/08(金) 12:29:45 ID:wvKUaQJA
10gで表領域を新たに30GB確保しようとしてるんだが、これどれぐらい時間かかるものなんだろう。 現在EnterpriseManagerで作成ボタン押して、反応待ってるんだがぜんぜん返ってこない。 ずーっとHDDカリカリ動いてるから、何かやってるとは思うんだが・・・。 ちなみにスペックはアスロン 2.5G メモリ1GBぐらい。 Oracleの環境構築って初めて過ぎてワケワカメ。
ん? 勉強用の環境作ってんのか?なら、そんな30GBなんてよくばりすぎ。1GBも必要ないな。
>>188 別のディスクに30GBのファイルをコピーするのと同じくらいかかる。
ディスクの性能によるよ。 OS上のコマンドでサイズがドンドン増えていくのが解る それで完了時間を見積もるくらいしかないかも?
192 :
NAME IS NULL :2006/12/09(土) 22:57:29 ID:Z0otFmfn
strutsでwebシステム作るんですがデータベースの文字セットはsjiSなんですね 「〜」が化ける問題がありますが ・文字セットをSJISTILDEにする ・アプリで変換する のとどっちがいいでしょう
193 :
NAME IS NULL :2006/12/09(土) 23:56:19 ID:AtT7YiO8
>>192 struts関係ないような気もするが、、
アプリ(fileter)で変換したほうがいいと思う。
データベースをUTF-8にしとけ
その程度も解決できずに。orz SIerに丸投げした方が良いよ。
system領域ってどういう時に拡張するの?
足らなくなったとき。
リモートでrmanを実行しようと思ってるんですけど、 バージョン違いで、「大は小をかねる」方法ってできないんですか? 10.2のクライアントで9.2や10.1への接続でエラーが出てしまう。
>>198 プラットフォームとエラー番号ぐらい書けよ。
普通は下位互換で問題なく取れるはずだぞ?
まそかその10.2にはクライアントしかインストールしていないなんて事はないよな?
うん。クライアントしか入ってない。 なんか入れない缶の課。
せめてそこでDB作れるぐらいのバイナリは入れておけ。
202 :
NAME IS NULL :2006/12/12(火) 00:50:38 ID:Uzndc809
Javaで複数結果の帰ってくるselect文のストアドプロシージャ(オラクル)をよんで ResultSetに入れようとしています。 オラクルのストアドはselectで結果が返せないので、カーソルを返すしかないのでしょうか? また、カーソルをストアドに宣言するとエラーになってしまいます。 パッケージの宣言句に書くと大丈夫でした。 これはオラクルの決まりなのでしょうか? よろしくお願いします。
203 :
NAME IS NULL :2006/12/12(火) 03:35:50 ID:xBdwFmsj
特定プロセスのPGA_ALLOC_MEMを増やすことは可能でしょうか? たとえばhoge1には常にPGAを100M以上割り振りたいのですが・・・。
なんでそんなことする必要があるの? pga_aggreagate_targetがセットされていてWORKAREA_SIZE_POLICY = AUTOで 適当に管理させればいいじゃん?
>>182 事前の設計がちゃんとできてれば、RAWはそんなに難しくないよ。
ストレージのレプリケーション機能を使う場合はファイルシステム使用不可
(またはオプション要)なんて場合もあるしね。
207 :
NAME IS NULL :2006/12/12(火) 23:26:53 ID:RfvhNHUe
Listener.ora 、sqlnet.ora が定義されている状態かつリスナーが立ち上がっている状態で、 tnsnames.ora に定義がなくても SQL*Plus から、インスタンス接続って可能なのでしょうか? SQL*Plus リファレンスを見ると、それっぽいことが書いてあるものの、いまいちうまく 行かないです。 (ORAエラーが何回かでたが、失念してしまいました m(_ _)m ) tnsnames.ora に記述してあるインスタンスには当然接続できるのですが…。 <環境> Solaris 9 Oracle 9.2 DB接続は、telnet で Solarisサーバにログインし、ttyから SQL*Plus を実行。
必要な環境変数が設定されていれば、リスナーすら要らんわけだが。
209 :
NAME IS NULL :2006/12/12(火) 23:48:33 ID:RfvhNHUe
環境変数oracle_sid設定しろyo
211 :
NAME IS NULL :2006/12/12(火) 23:54:53 ID:RfvhNHUe
>>208 ,210
情報どうもです。
>>210 確かに、env を確認したときに、ORACLE_SID がなかったので気にはしてましたが…。
1サーバに20個もインスタンスがあがってるので、あえて記述してなかったんかなぁ
(環境作ってないので、その辺はわからないが)。
いずれにしても、setenv して確認してみます。
どうも、IPアドレスで接続制限もしていたようなので、ORACLE_SID 入れてみてだめなら
IPアドレス追加してもらうしかないなぁ。
すげーw
>>207 tnsnames.oraがなくてもsqlplusに接続文字列を直接書ける。
---
ローカル・ネーミング(・メソッド)
TNSNAMES.ORA ファイルを使用して、ネットサービス名から接続記述子
(接続文字列≠{ネットサービス名、接続識別子})を取得する方法
# sqlplus hoge/hoge_pass@接続記述子(接続文字列) と書くのが面倒なための
エイリアス名と考えるとわかりやすい。
実際に # sqlplus hoge/hoge_pass@接続記述子(DESCRIPTION = 〜 tnsname.ora の長い接続文字列....)
は有効な接続書式です。
--
>>208 今はBEQ接続って言わないと思った。IPCだったかな?違うかもしらんから確認してくれ。
BEQ接続とIPCは別物だな。 前者がPIPEでリスナー不要、後者がUnixDomainで要リスナー。
>>215 ごめん、UnixDomainってどいうこと?
217 :
214 :2006/12/13(水) 15:40:27 ID:???
>>215 最近のオラクルではBEQ接続がなくなったと思ってたが勘違いのようですね。
TCP/IPのような、ソケットを使用した内部的なプロセス間通信(IPC)
>>218 TCP/IPのような、ソケットを使用した内部的なプロセス間通信(IPC)
とUnixDomainって関係ないよね?
IPとは別個。
ある期間内に、どのテーブルが頻繁にアクセス・更新されたかを知りたいのです。 色々と調べた結果、Statspackを利用すれば表領域単位での物理・論理I/Oサイズを取得することが可能 というのは解りましたが・・・・、テーブルまでに落とした情報の取得は出来るものでしょうか? 宜しくお願いします。 Oracle10.2.0.2
>>235 ファイングレイン監査だとSQLレベルで取れるけどね。
後は湯水の様に金使っていいのなら、シマンテック社が出している
「i3」というサードパーティツールはそういった情報をレポジトリDBに
収集してくれる。
DBのキャラクタセットがJA16SJISTILDEだと、Windows Vistaで 使えるようになるUnicode文字はきちんと保存できないって ことでいいんでしょうか?
utf8を使え。 電子メール(jis)が絡んだり、sjis携帯が絡むと化けるが。
utf8では解決できんだろ
>>226 UTF8 じゃむりぽだけど
AL32UTF8 ならいけるのではないか?
228 :
NAME IS NULL :2006/12/16(土) 22:22:17 ID:4ZspRBrb
すまね。 X$表とかって、マニュアルのどこらに載ってるの?
>>242 DBの内部で暗黙的に使われるものだから、載ってないんでないの?
V$系はリファレンスに載ってるけどX$系は無かったね
231 :
NAME IS NULL :2006/12/18(月) 08:25:46 ID:9qdEhnfx
>229-230 ありがとう。やっぱ載ってないのかぁ。
232 :
NAME IS NULL :2006/12/18(月) 23:33:13 ID:pDPTAIzI
オラクルマスター9iGoldって10gGoldより難しくね?
V$SQL_WORKAREA_ACTIVEで IDX MAINTENANCE (SOR LOAD WRITE BUFFERS GROUP BY (SORT) GROUP BY (HASH) HASH-JOIN 辺りがでてくるのだがIDX MAINTENANCE (SOR とGROUP BY (HASH)ってなにをやってるの? また、GROUP BY (HASH)のセッションがTEMPSEG_SIZEの値を持つのだが これをメモリ内で行わせるためにはPGAを大きくするでよい?
>>233 見たまんまだろ?
IDX MAINTENANCE (SOR => Indexの作成・再作成のためにSort処理が走った。
GROUP BY (SORT) => Group By句でSort処理が走った
GROUP BY (HASH) => Grouop By句でHash-join処理が走った。
pga_aggregate_targetを大きくすればin-memory sortが行われる可能性は
高くなる。
235 :
NAME IS NULL :2006/12/21(木) 15:39:06 ID:DKSBuEic
oracle 10gにてEnterpriseManagerを使用した レプリケーションの設定方法についてお聞きしたいです。 PC2台にてメインサーバ(Linux)、バックアップサーバ(Window 2003Server) [共にoracle 10g EnterpriseManager]の形式で指定時間にメインサーバのDBを バックアップサーバに反映するレプリケーションの設定を行おうと思っています。 (streamsの表領域レプリケーション・ウィザードを行い「成功」となって いるのですがお互いのDBが一致されておりません。資料を読んでいると 取得、伝播、適用、とあるのですが、EnterpriseManageにて設定する 場合にどの手順にて何を設定すれば良いのかお教え下さると助かります。) 初心者なのでお手数ですが手順をおってご説明して頂けると助かります。
トリガーを一時的に無効にすることは可能でしょうか? その場合、どのようなSQLで可能でしょうか? よろしくお願いします。
237 :
236 :2006/12/26(火) 09:04:42 ID:???
じこかいけつしました。
238 :
NAME IS NULL :2006/12/26(火) 09:48:33 ID:dl+xTnma
自己解決したら解決方法書けやー
239 :
236 :2006/12/26(火) 10:32:58 ID:???
ぐぐったら一発で出てきました。
GPL厨みたいなこというなw
>>235 OEMなんか使わないでマニュアルでやってみたら?
それで駄目だったらここでもう一回聞いてみるとか?
OEMのウィザードなんて使った事が無いという人がここではほとんど
だと思うよ。
EnterpriseManagerか〜・・そんなのあった様な・・・ 男ならsqlplusでそ。 dos版のsqlplusは使いやすいよ。
普通、LinuxかSolaris。 WindowsならMSDBとかMDBで充分。
もう鯖なんて要らない。 クライアントの方がスペック高かったりしますよ。
246 :
NAME IS NULL :2006/12/28(木) 00:25:46 ID:gdA8dnab
C#を使ってオラクルにアクセスしたいんですが、クライアントマシンにオラクルクライアントを入れずに接続する方法ないでしょうか? Web等で紹介されてるのはオラクルクライアントがインストールされていることが前提の例ばかりなんですが・・・
それは、一切のソフトウェアをインストールなしに?ってこと? それとも、君のオラクルクライアントってのは、10gなら300MBくらいあるファイルのこと?
Aスキーマに対してBスキーマにある全てのテーブルにSELECT権限を与えたい。 (今後Bスキーマに作成されるテーブルも含めて) でもBスキーマ以外のスキーマのテーブルには権限を与えたくない。 こんなことできますか?
できる。 さらに、ユーザBに対して、対象オブジェクト権限(SELECT)がWITH GRANT OPTION付きで、 付与されているれば、ユーザBが直接ユーザAに対して、権限を付与することも出来る。
>>246 せめてインスタントクライアントくらい入れろやwww
251 :
NAME IS NULL :2006/12/28(木) 21:48:19 ID:1E2uWzGC
>>249 できる?
質問者はオブジェクト単位に与えるのはいや、って書いているように見えるけど。
ああ、「全て」っていうところが重要なのかw
253 :
NAME IS NULL :2006/12/30(土) 23:52:56 ID:FqA3m+Sg
analyzeってどのくらいの周期で取るべき? また何がどーなったら再編すればいいんでしょうか?
254 :
NAME IS NULL :2006/12/31(日) 00:11:11 ID:rI2bYw3P
>>253 テーブルのレコードがどれだけ変わるかによる。
不変なら初回だけでOKだし、内容がガラリと変わるなら
その都度やらないと。
>>253 表の再編は行連鎖、行移行が発生していたり、もしくは
Delte文などによって1ブロックの中にかなり空きが発生
したりしている場合かな。
257 :
NAME IS NULL :2007/01/05(金) 04:54:05 ID:syH8zhZ/
Age
oracleのゴールドが取れたら新卒の就職活動ではどれぐらい有利になりますか?
すごいけど、あんまり意味ないだろう。 学生が持っててももろペーパーだって疑われるだけだし。 情報処理の方が遥かに受けがいいと思うよ。
>>259 やっぱり思ったほど役に立たないんですかね・・
>>258 少し鍛えるだけで安上がりに現場に投入できるから
配属先が入社前から運用管理系になる可能性が相当高い
会社に入りたいだけならメリットはあるけど
大手で開発やコンサルがしたい場合には出足でつまづくかも
>>261 なるほど。まさに開発がしたいんですけど、まずは会社に入れないと意味がないので
とりあえずゴールド目指します。
ありがとうございました。
>>262 就職の面談で取得流を聞かれたらどう答えるつもり?
それに、Oracleなどのベンダー系の資格は取得の補助がある会社が多いしね。
>>266 15万くらいの費用が必要だけどちゃんと講習費を見積もってる?
コナカやアオキのスーツなら1年分買えそうだ
>>267 試験だけ合格して、履歴書には 「オラクルマスターゴールド(講習未受講)」
って書こうと思ってるんですけど、駄目ですかね?
>>268 そりゃダメだ。さすが学生は考えることが違うな。
>>269 まじですか。
さすがに講習費は自腹じゃ無理です。
でも、面接で試験が受かってることをアピールので大丈夫です。
いやいや、業務で使える見込みが無い香具師は採らない。 CCNA持ってますよって2514しか弄れない香具師と同レベル。
>>272 新卒なんで、初めから業務では役に立たないことは面接官も分かってると思います。
勉強してることを伝えたいだけなので
それならシルバーでも十分だろう。シルバーまでなら講習無しで取れる。
開発目指したいならGoldなんていらないな 正直SQLをしっかりかける方がよいからブロンズとシルバー のSQLだけあればいいよ。資格欄には書きにくいけど
試しに設計してみて、自分なりの仕様書でも持参してアピールしてみれば? どういうユーザを想定しているか。 発生するであろう問題点の予測。 日々の使い勝手についての予測。 種々様々な要求仕様に対する解決のための実装案 とか、出せると実践で使えそうかなとは思うかも。 実機で実際に組んでみてパフォーマンスとかも考察できるといいけど、これは実務経験が無いと辛いな。
>>276 新卒の内容ではない
無理というより、新卒でそこまですると専門でない面接官には特別視される
技術畑の偉い人が別枠で内線で呼ばれて面接にやってくる
即効でメッキが剥がれて、見透かされた気分になる
--- そんな苦い思い出もあったw
資格をもつ事が不毛ってワケでもないのだが、 実務の経験のない人間の資格なんか技術畑の人間からすれば 価値はまったくないので、そこそこにしとけ。 営業畑の人間からすると名刺を埋める文字が増えるので 資格というのはそこそこに価値があるんだが。 どっちかと言うと開発に必要なのは一般的には奴隷根性とか 無限の体力だろうから、体を鍛えておいた方がいいぞw
あと会社で寝袋とかで眠れる逞しさ。 床の上で寝ると全身筋肉痛ですよ。むちゃくちゃ汚れるし。 うまくプロジェクトが進んでるうちは良いけど、うまく逝かないときは時間かけるしか無いし。
体力だけは自身があるので、他の学生に遅れをとることは無いと思いますw
ここで、レスしてるやつもあんま人を見る目ないというかもってないな。 実務経験のない人間の資格は確かに技術畑の人間からすれば、価値は全くないかもしれんが、 自発的に資格をとったということで、少なくとも努力できるという事の証明にはなる。 だから、プラスには働くだろう。
なんつーか、技術職なんかは「努力」なんて事は出来て当たり前だな。 そして学生のペーパー資格程度で「プラスに働く」なんて判断できる ほどおめでたい職種じゃない事は技術畑の人間なら身に染みてるんだが。
>>282 効果を考えず無駄な金と努力、時間を使う典型
この手の人間はプロマネやらしたら根性論でデスマする
超バカマネっぷりで優秀な中堅主力プログラマを潰して
周りにも会社的にも迷惑かけるタイプ
まあ、学生さんは早いうちに自分の将来を決める事をせずに、 開発なんてヤクザな業種を選択する前に色々と経験してから 開発なり営業なり事務なり運用なり選択していけばいいと思う。 つか、開発ってマジでお勧めしない職種だと思うんだが・・・。
学生なら情処系でいいんでは?ベンダー系までは不要な気がするな。
まぁ取りたいという人を無理に否定することはないのでは。 損にはならないだろうし。
俺の言うと通り
>>284 が一番人目を見る目がないね。
SQL Serverにはプロファイラがついていて、DBで実行されたクエリとか、その時間などを 追うことが出来るのですが、Oracle10ではこういった事は行えますか?
はい。できますよ。
>>290 Oracleより自分自身を一度プロファイルされたらいかかでしょうか??
危険水域のような気がします。
>>291 番号間違える辺り、あなたも危険水域のような気がしますよ。
>>292 そういうつっこみをするあなたも相当きてますよ。
少なくとも努力できるって、技術を切り売りして飯食ってる技術職なら当たり前だしなあ。 努力でき無い香具師は、切り売りする技術が尽きて、オペレータとかで夜中に働いて時間給の仕事で飯食うしか無くなるだけ。
DBサーバのキャラクタセットがJA16EUCで、 クライアントがJIS2004のWindowsVistaのとき、 クライアントがVista以前のWindowsである場合と比べて 何か問題発生する?
>>296 それはOiSCに訊いた方が良いと思われ
301 :
NAME IS NULL :2007/01/15(月) 19:46:40 ID:uGcaj6KT
だれか助けてください・・ HDDの容量チェックしてなくて いつの間にかオラクルの領域の容量使い切ったようで DBの起動が出来なくなりますた。。 容量減らそうにも、どのファイルを消せばよいのか分かりませぬ・・ 管理者権限で入ろうにも ORA-09817: Write to audit file failed. Linux Error: 28: No space left on device ORA-09945: Unable to initialize the audit trail file Linux Error: 28: No space left on device とエラーが出てログインできません。 こういう場合にはどうすれば良いのですか?
とにかく、auditファイルのあるディスクのスペースを空けろw initファイルのAUDIT_FILE_DESTパラメータで、どこに保存されているかわかるだろう。
自分がけすのは$ORACLE_BASE/admin/dbname/配下のdumpファイルから消すな。
>>299 に該当するバカは1件帰巣しました。
>>300 に該当する書き込みは選択されませんでした。
305 :
301 :2007/01/16(火) 00:29:44 ID:???
教えて下さい。 いまさらですが8iはどうすれば入手出来るでしょうか? Oracleのサイトからはダウンロード出来ませんよね?
>>306 そういった質問はOracleに聞くしかあるまい?
しかし何でいまさら8iよ?
308 :
306 :2007/01/16(火) 13:51:32 ID:???
レスありがとうございます。 やはりOracleに問い合わせですかね.... 客先でいまだに8iが動いてるんですが、それと同じ環境を用意する必要があるんですよー。
>>299 に該当するバカは1件帰巣しました。
>>304 に該当する書き込みは選択されませんでした
>>309 コピペするのはお前の汚いソースの中だけにしろ
>>306 WindowsかLinux版なら古いOracle本の付録CDにあるかも。
他のプラットフォームについては、昔のOOW等のイベントで配布された
メディアを探すとか。
314 :
306 :2007/01/16(火) 19:52:07 ID:???
>>312 あ、本当だ。
情報ありがとうございます。
中古でも探そうかな....
315 :
306 :2007/01/16(火) 19:53:11 ID:???
>>313 レスありがとうございます。
本の付録は考えたんですが、私が発見出来たのは全てPersonal Editiionでした。
>>310 コピペするのはお前の汚いソースの中だけにしろ
同じ環境なら、中古の同型機種買ってきて、dump/restoreで同一環境作るしか無いと思う。 一応10g買って、10g構成も提案してあげたら?
>>315 客先のメディアを拝借できないの?
Oracle専用本でなくても、古いLinux雑誌や
DBプログラミング本に着いてる場合もある。
321 :
306 :2007/01/17(水) 01:16:13 ID:???
レスありがとうございます。
>>318 9iと10gは購入済みで、近未来に客先も10gに上げる予定です。
それまでの間は出来るだけ同様の環境を用意したいと考えてます。
>>320 拝借したいのですが「貸して」って言いにくいですよね....
とりあえず書籍や雑誌を漁ってみます。
皆様、御助言ありがとうございました。
>>321 窓版の8i EEのインスコメディアなら多分家に帰ればありそう・・・。
>>321 >拝借したいのですが「貸して」って言いにくいですよね....
自分が客の立場だったら貸すよ。もちろん、運用前には消してもらうけど。
同じ Oracleバージョン+パッチリリース、同じプラットフォームで開発するメリットは大きいから。
ユーザへ言ってみたら?
ライセンス違反の可能性を指摘せずに借用を気軽にいうのは如何なものかと。
それを言うのに、雑誌付録のソフトで開発することは何も言わないというのは 一貫性がない気がするが。
代理店言って借りれば? 10gへの移行を前提としての貸出しならしてくれるだろ。
>雑誌付録のソフトで開発することは何も言わないというのは一貫性がない気がするが。 別に雑誌付録のソフトで開発することに何も言ってないとは一言もここに書いてないが。
>>324 10gのライセンス買ってんだから、違反にはならんでしょ。
ライセンスのダウングレードは保障されていたはず。
変な業者には貸したくないなあ。 せいぜい開発環境作って提供するぐらい。つまり客先作業前提。
330 :
NAME IS NULL :2007/01/20(土) 11:30:49 ID:csJ+CraU
Database Configuration Assistantを使ってデータベースを作成するときに、 グローバル・データベース名とSIDを指定するのですが、両者の違いがよくわかりません。 グローバル・データベースの下に、複数のインスタンスを作れるのでしょうか? +グローバル・データベース1 +SID_1 +SID_2 +SID_3 みたいに。
>>330 > グローバル・データベース名とSIDを指定するのですが、両者の違いがよくわかりません。
グローバルデータベースはネットワーク上で一意なサービス、SIDはマシン内で一意な識別子
> グローバル・データベースの下に、複数のインスタンスを作れるのでしょうか?
= RAC
質問ですがソフトパースが発生し動的サンプリングが動かないときって あるのでしょうか? ソフトパースが発生するということは共有SQLに対象SQLがない ということはハードパース発生で動的サンプリングが動きそう なきがするのですが。この認識で問題ないでしょうか?
皆、fast_start_mttr_targetってどれくらいにしている? 今管理しているDBってトータルのサイズが1.2TB超えたんだが、 どれくらいに設定しようかと迷っている。
>>332 > ソフトパースが発生・・・ということはハードパース発生で・・・
この時点から理解不能
だなぁ。 どこのDBの言い回しなんだろ。 「動的サンプリング」が「トレース」みたいなもの? 「共有SQL」が「ライブラリキャッシュ」のことかな?
共有SQLは共有SQL領域のことじゃねぇ??
337 :
NAME IS NULL :2007/01/24(水) 16:43:16 ID:rfZgmRGG
へんな社内用語使ってる会社って言えばH?
338 :
NAME IS NULL :2007/01/24(水) 17:20:40 ID:A7vL61Fv
ソフトバングにバースが入って、ハードゲイがタンパリング?
どこの人なんだろうな。 汎用機方面?
あぁ、ごめん。 すごく意味を間違えていたみたい。 > ソフトパースが発生・・・ということはハードパース発生で・・・ 確かに意味不明だ。 ごめんよ。忘れてくれ
>335 動的サンプリングは >どこのDBの言い回しなんだろ。 といわれるほど特殊な言い回しなのか すいません。 別名はダイナミックサンプリング? 共有SQLは共有プールSQL これも社内独特の言い回しなのかな。
> これも社内独特の言い回しなのかな。 どこの会社かは知らないが もっと中身を理解して一般的な言葉で話してくれないと 宇宙語にしか聞こえないよ。
344 :
NAME IS NULL :2007/01/25(木) 09:28:35 ID:+UvU2D1r
社内とかいうなら、会社名か何処系の仕事がメインか みか、H、N、F・・・。をさらすべきだろ? あと何をメインDBとしてやってるか。 正直、きいたことねー。
>>332 の人気に嫉妬だが少々脊髄反射ぎみでないかい。要はCBTの話だろ?
公式の日本語訳はしらないけどdynamic samplingやら
soft, hard parse の単語は普通に出てくるぞ。
共有SQLは
>>335 のいうとりライブラリキャッシュのことだろうな。
で質問の件だがこんな感じだと思う。
ライブラリキャッシュにSQLがある(soft parse) キャッシュされたプランはそのまま使用される。
ない(hard parse)
静的な統計情報があればそれが使われる。(オプションで調整可能)
なければ動的に収集(dynamic sampling)
>>345 ちょいミス
×CBT ○CBO コストベースオプティマイザ
>>345 うーん、おれのエスパー日本語解析によると違う答えになるな
動的サンプリングの統計情報は共有プールにキャッシュされる・・・以下略
つーか、質問する前に「動的サンプリング」とかでググルないか?
3番目くらいにそのまんま出てくるんだが・・・
動的サンプリングはパフォチューマニュアルにちゃんと出てくる用語だよ
SQL投入→Parser→(ライブラリキャッシュなし)ソフトパース →(ライブラリキャッシュあり)ハードパース という流れの中のものを 332の時点ではソフトパースという物を Parserで共有プールにSQL情報がないときに起こる処理 と勘違いしていたため SQL投入→Parser→(ライブラリキャッシュなし)ソフトパース→ハードパース →SQL情報が存在するためキャッシュを利用 というような流れと勝手に判断していた。 ハードパース時に動的サンプリングは行われるはずなのに・・ で332のような発言になってしまった。 質問が自分の認識間違いから起きた物だから忘れてくれ、正直すまんかった。 >345、347 背景はそんな感じです。あの宇宙語からそこまで読み取ってくれたのは乙です。
オマイラ的にJPAってどうなん?
オマイラ的に11gってどうなん?
すいません質問です。 9iで一時表領域TEMPの拡張したいです。 最初に確保したのが1000Mなんですが MINEXTENTSが1でMAXEXTENTSが指定されておらず実質1Mしか使えてません。 ALTERでMAXEXTENTSを設定したいのですがどうもうまくいきません。 どうしたら良いでしょうか? よろしくお願いします。
352 :
NAME IS NULL :2007/01/28(日) 11:38:08 ID:0/NH0qqR
>>351 うまくいかないなら、うまくいかなかったDDLくらい晒せよ。
353 :
351 :2007/01/28(日) 12:33:55 ID:???
すいません alter tablespace TEMP storage(INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS 121 PICTINCREASE 50 ) だと駄目でした。
TEMPORARYなら一回消しても大丈夫だべ
355 :
351 :2007/01/28(日) 23:54:33 ID:???
ってことは消して再作成が一番スマートってことですね? ありがとうございます。
>>351 1MBしか使っていないってどうやって判断したの?
Sort処理やHash処理とかが行われていなければ、当然Temp領域か゛
使われる事はないし、インスタンス起動直後はTemp領域が解放されて
いるから、見た目にはエクステントが一個しか使われていないように
見えたりするけど?
もしそれで騒いでいるとしたらかなり痛いよ?
1000MB指定って、メモリは4GBとかフル増設してるの前提だよな? 256MBとかしか積んでなくて出来ないとかほざいてたりして。orz
>>353 ALTER TABLESPACE文はローカル管理の一時表領域に使用できません。
で検索しる
359 :
NAME IS NULL :2007/01/29(月) 23:48:51 ID:Rr7+0KD9
データベースリンクごしにストアドプロシージャ呼べる?
361 :
NAME IS NULL :2007/01/30(火) 01:57:57 ID:70KAxeF4
362 :
351 :2007/02/01(木) 00:34:24 ID:???
>>358 ありがとうございます。
そこに乗ってるDDLで解決できました。
>>353 のDDLではデフォルトの1Mでしか出来ないようでした。
10.2.0.2 の DVD-ROM って作られないのかなぁ。 10.2.0.1 から Patch あてんの辛すぎ。。。
いまは 10.2.0.3 じゃないのかな。
10.2.0.3 がもう出てるのか。orz
>>363 パッチあてるような現場に行ったこと無いけど
そんな辛いもんなの?
何か当てなきゃ困るパッチあったっけ? 問題なければ弄らないが、安定運用の基本だしなあ。 ファイヤウォール噛ませて防御しとけばセキュリティの類いはそう問題にならないし、もし侵入されても個人情報とかは漏れないように分離したシステム構成にして、何十にも危機管理の対策済み。
CPUとPSRを混同してるみたいだね。修行不足だな。
修行とか言うと新興宗教臭い。 オラ教信者の巣窟ですか?
修行するぞ〜修行するぞ〜
尊師の御名を教えてください。
373 :
NAME IS NULL :2007/02/17(土) 02:18:06 ID:Q2XtoUUD
oracle 9i archivelogモードでrmanのバックをアップを試してみています。 インスタンスがオープンした状態で rman > backup database format 'C:/backup/full1'; としてバックアップは作成されました。 これをもどそうと rman> shutdown immediate rman> startup nomount rman> restore controlfile from 'C:/backup/full1'; とここまでうまくいきました。 しかし、 rman> alter database mount; rman> restore database from 'C:/backup/full1'; RMAN-03002: failure of restore command at 02/17/2007 02:13:41 RMAN-06509: only SPFILE or controlfile can be restored from autobackup で、データファイルが戻りません。 カタログというのは作っていないのですが、データはもう戻せないのでしょうか?
374 :
373 :2007/02/17(土) 03:23:26 ID:Q2XtoUUD
先に制御ファイルを潰しているからバックアップ情報が消えてるというのは分かりました。 restore controlfile...をせずに、 restore database; でリストアはできました。 カタログなしで制御ファイルを潰した場合はRMANではリストアできない? oracleのdbms_backup_restore.RestoreDatafileToパッケージで データファイルを個別に取り出して手動での復元はできたのですが、 RMANから簡単戻す方法ってあるでしょうか?
どういう単位でリストアしたいの? ってか、それがはっきりしてるなら、それに対応するrestoreを発行すれば。
>>374 確かにControl Fileを上書きした場合にはそうなるかもね。
そのために通常はバックアップセットにコントロールファイルのバックアップを
含めると思ったが?
というよりも、コントロールファイルをリストアする状況なんてミラー化してさえ
いればほとんど無いと思うが?
そもそも現行のRedoログファイル、現行のコントロールファイルが残っている
のならば完全回復目指すのが普通だしさ?
>>374 取り敢えず、
configure controlfile autobackup on;
で制御ファイルのオートバックアップを
取得しておく事をお勧めする。
378 :
373 :2007/02/17(土) 21:32:53 ID:Q2XtoUUD
>>375 backup databaseとしました。
コントロールファイル、データファイル、
SPFILEがとられているみたいです。
>>376 >>377 わかりました。
が、仮に
元の制御ファイルが無い場合は、RMANが作ったバックアップファイルから
RMANだけでは復旧できないと思っていいのでしょうか?
>>378 RMANが取ったControl Fileのバックアップを利用して
recover database using backup control file until cancel;で
最後はopen resetlogsでDBをopenする事になる。
サーバがあって、ローカルセグメントのクライアントAと ADSL・IPSec越しのクライアントBがあります。 Aは無通信で放置しててもなんともないですが、 Bは無通信で10分ほどたつと接続が切れるそうです。 サーバからセッションが消えているそうですが、 クライアントがそれを知らなくてエラーになるとか。 BがINS越しだったころはAと同様だったそうです。 こんなことってあるんですかね? 相談されたんですが想像もつきません。
ちゃんとルーティング設定せずにNATで誤摩化してる悪寒。 まあちゃんとネットワーク分かる業者に頼むなり、自分で勉強してなんとか汁! AからBにネットで繋がらないでしょ?
>>381 回線かIPSecとは言ってみましたけど、確信はないんですよね・・・
機器変えてテストしないとだめでしょうかね。
>>382 Bからサーバは、放置中もずっとpingが通ったそうです。
他は聞いてみないとわからなそうですけど、
図を見る限りは3台の間で相互に通るはず・・・
アイドル状態のTCPコネクションを切断するやつが経路の途中にいると思われ。 ファイアウォールとか。
>Bからサーバは、放置中もずっとpingが通ったそうです。 そりゃpingは永続的なセッションではないからな。 たとえば、sqlplusじゃなくて、telnetでBからサーバに接続放置してみ。 おそらく同じように切れるはずだから。 であれば、Oracleは全く関係なしで、ネットワーク設定の問題。 FWやNATをしているルータ、VPNソフト/装置、ADSLモデムなどなど。 途中のネットワークの設定変更が不可能な場合は、OSのパラメータ(TCPキープアライブ時間)を調整するしかないけど。 OracleNetのパラメータで調整できるかどうかは不明(マニュアルレベルではOSのマニュアルを参照しろと書いてあるだけ。
TCP keepaliveのアイドル・タイムアウトはOS側のパラメータで調整よ。 Oracleの場合はOracleサーバー側のアイドル・タイムアウトを短くしておけば桶。
387 :
386 :2007/02/18(日) 14:31:53 ID:???
アイドル・タイムアウトっていうか、keepaliveプローブを出すまで待つ時間ね。デフォルト7200秒待ち。
まあネットワークスキル低いってことだけは分かった。 手に負えないなら誰かに頼むか自分でなんとかするしかないと思う。 エスパでも無ければ変態ネットの原因なんて分かるはずが無い。
サーバ側:EXPIRE_TIME クライアント側:ENABLE=BROKEN、OSパラメータ どっちかでNW機器の設定値より短い時間に設定汁。
あんまり独自設定は辞めたほうが良いと思う。 他の人使ってないから変なバグに嵌る可能性高くなるし、バージョンアップの際に忘れて嵌まる原因に成る。 基本に忠実に、ネットをまずまともにしたほうが良い。 ネットがおかしいよね?
ネットが「おかしい」んじゃなくて、機器が設定されてる通りに動いてるだけ。 ADSLルータあたりが気を利かしてアイドルTCPコネクションを切断するようになってると思われ。 ファイアウォール機器なんかでよくデフォルトで有効になってることがある。 その対策を独自設定と呼ぶのは修行不足。
392 :
380 :2007/02/20(火) 22:17:01 ID:???
384さん他が正解でした。 新しいルータがファイアウォール有効になってて、 そのときにTCPセッションを10分で切るようになってるみたいです。 そして、ファイアウォールを切らない限りこの機能は止められず、 時間も変更できない。 そういうわけでお騒がせしました。 さて、このルータをどうしてくれようか・・・
捨てるしか無いでしょ。トラブルの元凶なんだし。 そのままで利用者は文句言わないの? ネットが原因なのに、OSやオラクルやアプリケーション側で回避するのは辞めとけって話でしょ。 設定した香具師が資料も残さず辞めてしまって、後の香具師が苦労するのはよくあるパターン。
ファイアウォールはコネクション管理テーブルがあふれないようにアイドルコネクション を切断するようになってる。 遅かれ早かれ切断される。ADSLルータを変えたところで解決にならん。 だからkeepaliveを出して、ファイアウォールにそのコネクションを使ってることを 教えてやる必要がある。
>>395 コネクション管理テーブルはどれくらいまであふれないもんだろうか?
というか、あふれる気配ないのに切るもんなんだろうか?
もっと高いルータなら設定できたのか?
今回のは、テーブル数不明、タイムアウトが10分で固定、
機能が切れないあたりが地雷っぽい。
とりあえず今回に関しては構造上ファイアウォール切ってもよさそう。
ところで、keepaliveがサーバのパラメータって事は、
ファイアウォールの都合でkeepalive送るクライアントと、
従量制のINSでkeepalive送らないクライアントが混ざった場合に
どうするべきか気になる。
なんでいきなりISDNの話が出てくるんだよw どっちにしても、クライアント側でkeepaliveをすることもできるし。
>394 別部品を食って改良して右手から出すのか? ……スマン、多分分からん椰子の方が多そうなネタでorz
>>398 EATMAN分かる奴がこの刷れにいると思ったのか?
素直にネット再構築汁! 普通は変な設定しなくても繋がるようにネットを作る。
既にスレ違いの話題。
ARC0: Media recovery disabled アラートログにがずっと出続けます。(1分起きくらいに) パラメータ設定が悪いんでしょうか?
Media recovery disabledだからじゃないの? ググるなり駅前留学すれば?
>>402 DBがNo Archivelog Modeなのにinit.oraの中で「log_archive_start = true」が
設定されているからだろ。
Cシェル、Oracle10gで exp 〜 query\"where column_name in\( select col from tableB \) \" みたくqueryパラメータで副照会できないようなんで exp 〜 query\"where column_name in\( $COLUMN_NAMES \) \" なんて具合に変数を埋め込みたい。 シェル変数が展開されてからexportに渡されるようにする方法ないかな?
407 :
NAME IS NULL :2007/02/28(水) 01:20:11 ID:DcE1xTBj
Cシェル得意じゃないけど、 query="where column_name in( $COLUMN_NAMES ) " これでいいんじゃない? 余談だけど、公式マニュアルのデータベース・ユーティリティのexpの項目を書いた人も、 いまいちUnixのシェルをわかってないような気がする。 文字列全体を渡すために、特殊な文字を一個一個エスケープしてるし。 見づらいだけでなく、変な間違いを起こしやすい書き方だ。
そもそもシェルスクリプトで遣るのが間違いでしょ。 文字列に日本語とか空白や記号使うアフォとか排除できれば、エスケープ無しでも良いけどね。 アフォのクレーム付ける論理は異常。
いつの間にかロールバックセグメントやテンポラリ領域が肥大化しています… どのSQLが犯人か突き止める方法ありますでしょうか? バージョンは8174eeです。
質問ですがひとつのサーバでインスタンスを 10個も20個も起動させるシステムってよくあるものですか?
ない。 リソースの使用効率が異常に悪くなる。
415 :
NAME IS NULL :2007/03/04(日) 06:35:00 ID:0GOkC2xg
>>413 本番環境ではまず無い。
テスト環境では複数起動させる場合もあるがさすがに2桁はいかない。
>>413 無い。
開発環境でも普通はスキーマ分ける程度だろ。
俺なら1サーバに2つ以上のインスタンス立ち上げるくらいなら、
複数サーバ用意する。
>414-416 回答どうもです。 やっぱりシステム的に問題ありですか。
>>417 例えば教育ならあり得ると思う。渋谷の研修センターのUNIXでは10数インスタンスを
同時に稼働させている事例もある。
逆に聞くが、お前は なぜそうしたいのか?
>418 自分は先週案件を見て、これはシステム として無理だとおもって変更してもらおうかな・・。 と思ってる。 今まで関わってた業務では基本的には単一のインスタンスで 複数インスタンスはRACのみだったから 他のシステムって普通に複数インスタンスで動かしてるものなのか? と思って聞いてみた
複数のインスタンス使うのはシステム的には問題ないだろうけど、 単に気分とかの問題だろうな。 さすがに2桁はナニか違うだろ、とは思うし、 普通はスキーマ分けるだけで対応できると思うが。
個々にDBを起動/停止したいという要求はときどきあるからな。 こういった場合、Oracleではインスタンスを分けるしかない。 インスタンスを分ければ、その分プロセス数も増えてメモリを余計に食うし、SGAの分配とかも気にしなくちゃいけない。 あるインスタンスでSGAが足りなくなっているのに別のインスタンスではSGAが有り余っている、というようなことが常に起きるしね。 この辺は、Oracleに改善して欲しいな。
>>420 >スキーマ分けるだけで対応できると思うが。
この辺は皆さんがおっしゃるとおりスキーマなり
カラムに識別子追加なりで対応できると思われます。
>>421 >インスタンスを分ければ、その分プロセス数も増えてメモリを余計に食うし
これがあるのでOracleの最低動作レベルのサーバで
複数インスタンスを持たせようと思ったのが恐ろしい
ここの住人は親切だな。ありがと。
自分の考えが間違ってなさそうなので直接聞くことにするよ
VPARやらLPARなんかの仮想化技術を使えば、物理的には一つのサーバー 上でも、仮想サーバー単位にO/SをインストールしてDBを起動させる事例 ならいくらでもある。 最近のハイエンドサーバーなら仮想化技術には間違いなく対応しているし、 一個のサーバーで128個のCPUとかもっているのもあるから、各パーティション 毎に10〜12個のCPU割り振って、10個+のパーティション作れば、別に10の インスタンスを起動したとしも問題はない。 本番環境ではないが、HPのSuperDome上に16個のVPAR作って、RAC化して 遊んだりとかしたよ。 それほどCPUバウンドのシステムでないのなら、そういったサーバーの使い方も あるというのも覚えておくといいかもね。
>>423 しかし、Oracleの場合はSGA_MAXが静的なのと1インスタンス=1DBなんで、いまいち論理分割の恩恵を受けにくい。
物理分割はリソースの動的配分が出来ないし。
そういうのはDB2の方が得意ではあるな。
ライセンスにも依るだろうね。極端な例だが、ハイエンドサーバーは 1CPUライセンスで 複数インスタンスを動かせるのだろうか?
複数はいいよ、確か。
>>426 それは大丈夫だよ。
文字コードが違うDBを作りたい場合はスキーマを分けても対応できないので、
仕方なくインスタンスを分けるしかない。
ただ、RAC環境では複数のDBは基本的にお勧めしないとサポートに言われて
とても困ったことがあった。
Date型項目の引き算を、秒レベルで実行する方法はないでしょうか。 2007/2/27 10:00:00 - 2007/2/27 09:59:55 = 5 というロジックをつくりたいのです。 やり方をご存知の方、お願いいたします。
>>451 論理分割してRAC化という方法もあるよ。
物理的には一つのサーバーだから、サイトレベル障害には耐えらないけど、
ただしくハードウェアパスを分ければ、ハードウェア障害やO/S障害などに
よるフェイルオーバーには十分対応出来る。
昨今では自社内でデータセンターを持っていない所もあるから、業務を委託
していたりする場合には、物理スペースを小さくして維持費を下げたりなんて
細かい所をやっている所もある。
それと複数の開発環境が欲しい場合には、論理分割は非常に便利だよ。
>>429 months_betweenで2つの日付間の月数求めてから、
秒数に変換したら良いんじゃね?
複数NICで運用する場合でも、 リスナー1つで大丈夫だっけか? リスナーの負荷分散とか考えたら、 2つ立ち上げた方が良さ気?
434 :
433 :2007/03/09(金) 11:11:46 ID:???
マニュアルに書いてあったな。 スレ汚しスマソ
435 :
NAME IS NULL :2007/03/09(金) 12:08:40 ID:IbiyF+a6
32ビットの場合、Oracle載せたLinuxマシンって最大メモリはどのくらいまで有効に使えますか? Windows 2003だとせいぜい4GB?
2^32=4GB
>>435 32bit Linux だと SGA は 1.7GB くらいということらしい。
しょぼいな。
>>438 2GBのSGAをフルに使ってまだ足りないような規模のDBなら
最初から64bit OS上で64bit版Oracle使うだろwww
64ビット買えない貧乏案件って場合も有るだろうな。 32ビットマシンしか用意できないとかさ。
つかOracle使う時点で貧乏人案件お断りだと思うが。
貧乏人こそ見栄っ張りで、オラクルなのにウィンドウズやリナックスでコストダウンを求められる。 ちゃんとユニックス機買うところはごく一部。
UNIXでもOpteron機はいやだったな・・・。 今ではいい思い出だけど
別にOSで10万ぐらい違ったところでハードで数百万するんだからいっしょだろ
>443 LinuxでもRHELくらいならいいと思うけど。 HP-UXとどっちがマシか?って聞かれると微妙なモノがあるし。
>>437 これって、Linuxがしょぼいってことだよな?
Windowsなら3GBくらい使えるんじゃない?
あんまWindowsくわしくないけど、変わらんと思う。 WindowsServer 64bitだと知らんが。
>>447 シェアードメモリで使える空間が1.7Gで
ユーザーが使えるアドレス空間は2〜3Gくらいあるのとちゃうの?
WindowsだとOracleのバックグランドプロセスがスレッドで実装されているから、
全バックグランドプロセス+シェアードメモリが2〜3Gに納まっていなけりゃいかんので
メモリのピークはunix系より早く来ると聞いたことがある。
まあ、どっちでもいいや。 これから使うことも無いだろうし。
まあ、ウィンドウズやリナックス使ってる香具師は負け。
なんていってたら、SQLServerに食われるだけだけどね。
>>452 SQL Serverは微妙に使いにくいwww
454 :
NAME IS NULL :2007/03/17(土) 01:21:44 ID:b8i9VR5l
いまどきLinuxもWindowsもx64がフツーに動くのに、なぜに32bitで使いたいの?
456 :
NAME IS NULL :2007/03/17(土) 10:09:20 ID:b8i9VR5l
>>455 H/Wを総入れ替えできないからだろ?
新規構築なら64ダロ
457 :
NAME IS NULL :2007/03/21(水) 17:46:05 ID:OhTggdhX
OracleクライアントとOracleサーバ間の物理接続と言われているものの数の 確認方法ってどんな方法がありますか? (v$sessionビューのレコード数でOK?) Version は、クライアント/サーバ共に 10.1.0.2.0 です
物理接続って言ったら、EthernetとかX25とかのことを言うぞ、普通は。
>>459 そのドキュメント中に
int getPoolSize()
ってのがあるだろうが。
oracleで100Kb程の文字データを登録して、selectで検索したいのですが、 LONGやCLOBはwhere句に指定できないとエラーが出ます。 LONGやCLOBの項目を、select文で検索することはできないでしょうか?
自作関数の結果でインデックスを作りたいのですが、 CREATE INDEX IDX_SEARCH_TARGET ON XXX_TBL( XXX_FUNC(ITEM_1, ITEM_2) ) を実行すると SQL実行中に以下のエラーが発生しました。 エラーコード:30553 [Oracle][ODBC][Ora]ORA-30553: 関数がDETERMINISTICではありません。 としかられます。 DETERMINISTICで調べたのですが、対応法がよくわかりません。 ご教授お願いします。
ファンクション索引は、引数だけで戻り値が一意に定まるファンクションでないといけない。 この性質がDETERMINISTIC。 XXX_FUNCの中で別のテーブルデータを取ってきたりするとこの条件にあてはまらない。 DETERMINISTIC句はSQLリファレンスのCREATE FUNCTIONを見る! あとPL/SQLユーザーズガイドもね。
可変長引数の関数って作れますか?
>>464 ありがとうございます。
調べてみます。
>>467 すみません。ストアードファンクションです。
Oracle9iです。
>>468 自分が知ってる範囲では見つからないなぁ。
強いて言えば、配列 (PL/SQL表) に値を入れて、それを引数で指定することで
可変長の引数を実現できると思う。
Oracle9i PL/SQL パッケージ・プロシージャおよびタイプ・リファレンス リリース2(9.2)
の「DBMS_DESCRIBE」プロシージャが参考になるかもしれん。
あとはOTN-Jのフォーラムで聞くのも良いと思う。ここより見てる人は多い気がする。
デフォルトnullとかオーバーロードじゃダメなの?
tableA id itemA tableB id itemB select A.id, itemA, itemB from tableA A left outer join tableB on A.id = B.id 上記のクエリをXX_VIEWにして select * from xx_view where itemB is not null とすると、nullのデータが出てきます。(これは、tableAに紐づかなかったデータ) XX_VIEWの結果に対し、itemB is not nullが評価されると思ったのですが、違うようです。 この結果は仕様なのでしょうか?
NULLを弾いてから外部結合、てことなのか。何か納得いかないが。 select A.id, itemA, itemB from tableA A left outer join tableB on A.id = B.idをインラインビューとしてやると正しく取れる?
>>473 結果は変わらないです。
遅れて申し訳ないですが、oracle9iです。
10g XEでやってみたけど、ちゃんとNULLの行はじいてくれたよ。 ちなみに、こっちの構文ではどう? select A.id, itemA, itemB from tableA A, tableB B where A.id = B.id(+)
DB:Oracle 10i XE OS:日本語WindowsXP SP2 SPFILEXE.ORAをいじって *.NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS' *.NLS_TIMESTAMP_FORMAT='YYYY/MM/DD HH24:MI:SS' て設定して再起動して思った通りに設定されたことを確認しました。 が、シカトこかれてデフォルトの書式はRR-MM-DDのままでした。 いろいろ調べたところ、どうやら レジストリのNLS_LANGがJAPANESE_JAPAN.JA16SJISTILDEてのが 超巨大なお世話の犯人くさいですが、 こりをどう設定すれば上記の書式がデフォルトになるのでしょうか? ちなみにシステム環境変数にはNLS_LANGはなかったです
そまそ Oracle 10g XEですた
>>477 REGEDIT開いてHKEY_LOCAL_MACHINE=> SOFTWARE => ORACLE => HOME<番号>
新規値でNLS_DATE_FORMATを追加。
値としてYYYY/MM/DD HH24:MI:SS。
そんな日本人しか使わないような糞設定しないほうが良いと思うが。 アプリケーション鯖側で任意のフォーマットに変換して使えば?
俺もSQLで目的の書式に変換する方がよいと思う。
481 :
476 :2007/04/03(火) 19:54:14 ID:???
ありがとうございますた
>>479-480 ハゲ同なんだが
アプリ担当がどっか行っちゃったんで
いま逆コンパイルしてソース作ってるとこ
Javaでまだよかった、わはは
セッションの開始時に、 ALTER SESSION SET NLS_DATE_FORMAT='YYYY…' を 発行する手もあるよ。
SQLで変換はDB側に負担がかかるから遣らせたくないな。 まあ用途や規模にもよるだろうけど、DB側とアプリ側のどちらで処理したほうがパフォーマンスでるのだろう。
>>483 TO_CHAR関数はそんなに負荷かかるものか?
>>483 TO_CHARした結果、結合でインデックスが使われなくなるのであれば別だがSQLのほうが早い。
>>483 Javaでアレコレ文字列加工するよりもSQLでやった方がほとんどの場合速い
速いかどうかより負荷が重要。 一人でDB使ってるとかじゃないし。
アプリで処理してダラダラとコネクションつなぎっぱなしと SQLで処理してコネクション短時間で終わるのでは、 後者の方がシステムから見たらやさしいはずだが。 一人でDB使ってるとかじゃないし。
コネクションは繋ぎっぱのほうが負荷が低い訳だが。 つ keep-alive
うむ。 ただつなぎっぱだと、リソースの無駄使いになるから、 セッションマルチプレクスとかコネクションプーリングとかを使用する。
ま、まともな神経ならコネクションプール使う罠www
>SQLで変換はDB側に負担がかかるから遣らせたくないな。 なんて言うヤツがコネクションプールを知ってるとはとても思えんがw
きっとデフォ設定で共有接続なんだろ
oracleサーバーがクラッシュでなんとかオラクルのインストールディレクトリを取得できましたが、 そのデータを使用してDBの復元はできないでしょうか?
必要なファイルがすべて正常であれば可能。
>>494 基本はredolog、control file、datafileが残っていれば可能。
というかDBだったら定期的にバックアップとか取ってるんじゃないのか?
>>494 最低限、制御ファイルとREDOログファイル、
pfileないしspfile、データファイルが
まったく無事なら復旧できると思うが。
バックアップから復元という選択肢がないのが不思議。
つ〜か、重要な環境ならarchivelogモードにして定期的に バックアップとっていると思うけどな。 最悪、バイナリ部分が吹っ飛んだとしても、新たにソフトを インスコして、バックアップから戻せるべ?
>>495-499 みなさんありがとうございます。
バックアップを取っていなかったことは、面目ないっす。
これに懲りて、定期的にバックアップします。
インストールディレクトリから復元する場合、
oracleをインストールした後、インストールディレクトリを入れ替えればよいでしょうか?
>>500 つ〜か、お前の言っているインストールディレクトリの意味が良く分からん。
まずは鯖の種類は何よ? 窓? Linux? Sun? HP-UX? AIX?
それとOracle関連でどのファイルを救出できたんだ?
バックアップ無しのNon-archivelogモードで復旧できる可能性があるとしたら、
最低限でも一貫性の取れたデータファイルだけは復旧できていないとどうにもならん。
最悪それさえ残っていれば、手間はかかるがコントロールファイルの再作成および
open resetlogsで上げられる。
>>502 すみませんでした。
windowsXPです。
インストールディレクトリとは、インストーラで指定したインストールディレクトリで、
C:\oracleです。現在その下にoradata、admin、ora92があり、
ディスククラッシュはしていないので、C:\oracle以下のファイルは無事に残っています。
別のWindowsXPマシンのC:\oracleに新たにオラクルをインストーラーでインストールし、
その後、C:\oracleを丸ごと前のものと入れ替えてoracleを起動すれば復旧できるのかと思いまして・・・
今別のマシンがないため、試すことができない状況です。
>>503 ディスククラッシュしてないということは、マザーとか電源とかが原因の故障?
だとすれば、電源が強制的に切断されたがその時にはOracleがShutdownされていた、ならセーフでしょう。
前回正常電源切断後、電源が立ち上がらなくなったのでもセーフでしょう。
電源強制切断時にOracleが稼働中だったらケースバイケースかもねぇ。
とりあえず、同じSIDで別PCにデータベース作ってファイルをまるごとコピーして起動してみ。
なんとなく、復旧できそうな気はするけど、自動復旧できなければ手動で対応できるかどうかだろうねぇ。
もちろん、場合によっては全然ダメかもしれないけど。で、アーカイブログモードなの?ノーアーカイブなの?
ノーアーカイブであったとしても停止時にトランザクションが少ないorREDOが十分に大きいなら可能性はあるかも。
…っていうくらいにいろいろ可能性があるので、そんな状況説明だけでは話が散乱するだけかもね。
断片的な話を聞いてる限りじゃ簡単に直せそうだね 重要なデータなら、プロに頼んだ方が確実のような気がするよ 素人が下手にやって直せるモノをダメにしても良いなら チャレンジしてみるのも良いと思うけど
まずは復旧を試す前にもバックアップしろよ。 復旧途中でいろいろ試して弄ってるうちに、ファイル壊して復旧不能にしてしまうってのはよくある罠。 つーかクラッシュして鯖止まったままで困らないの? 代替PCすら用意してなかったら、かなり痛いね。
>>503 鯖が窓なら確かにその方法でもいける。
流れとしては・・・
1. ボラクルのソフトウェアを前と全く同じディレクトリにインスコ
2. 前と同じSIDで新規DBを再作成
3. 以前のデータベース関連のファイルを全て(redolog、datafile, orapw、init.ora、control)を入れ替える。
4. DB起動
注意点としては
>>505 が言っているように、復旧を始めるまえに今の全てのファイルの
バックアップを取得しておくこと。
最悪ヒューマンエラーを起こしたとしても、また復旧を始められる。
これはリカバリの基本中の基本。
SIDじゃなくて、内部的になんかユニークIDもってなかったっけ? そこら辺って大丈夫なの?
窓はそこまで高等じゃなかったはず。
XPで動かしてるぐらいだから、再インスコでも十分なのかもな。 なんか連休入ってるみたいで音沙汰ないし。
クラッシュサーバーからファイルを取り出せたっぽいから その取り出した先の媒体がリカバリーリトライ用のバックアップになるだろうね。
512 :
NAME IS NULL :2007/05/05(土) 20:56:06 ID:62q5988W
エラーメッセージが文字化けします。 ORA-00942: ???????????????
>>512 NLS_LANG
oerr ora 942
とか。
>>512 ORA-00942をググるか
エラーメッセージガイド見て探せwww
ま、「表またはビューが存在しません。」だけどなwww
515 :
NAME IS NULL :2007/05/06(日) 11:16:31 ID:GJ+A4Kez
512です。みなさんありがとうございます。 文字コード(文字セット)がUS7ASCIIで時点で日本語はENDですかね。 こんなんで作った覚えないけどな。。
日本語でOK
どこをジャパニーズにしたいのかティーチしてショーしろ
たぶんここのことだろ >文字コード(文字セット)でUS7ASCIIで時点で日本語でENDですかででで。
(引用ミスってるようだけど)正解。
メッセージをジャパニーズにチェンジしたいのか、データベースをジャパニーズにチェンジしたいのか。
うんこ日本語ですいまねん。 メッセージをジャパニーズにチェンジしたいです
頭を英語で使えば問題ないと思う。
>>521 NLS_LANGをLANGとトゥギャザーすればオーケー。
>>504 おまえ何を言っているんだ??
ディスククラッシュしてなくてマシンの電源が落ちただけなら、マザーか電源かしらんが、
交換してOracleを再起動するだけで自動的にインスタンスリカバリが働くから、
電源が落ちる前の最新の一貫性のある状態には戻るだろ。
「電源強制切断時にOracleが稼働中だったらケースバイケースかもねぇ。」
稼動中に電源落ちても問題ないだろ。もちろん、コミットしてないデータは
失われるが。
>>503 どうやらなにも心配せずに故障したパーツを交換して起動すれば
問題なく復旧するようですね(by 524氏)。
リカバリーコマンドや、バックアップからのリストアも不要のようなので楽ですね^^
データが消えてないかチェックするのは基本。
>>525 >リカバリーコマンドや、バックアップからのリストアも不要のようなので楽ですね^^
俺が言ってるのはあくまで「ディスククラッシュ」してなければの話だけどね。
してなければ、リカバリコマンド入力やリストアする必要はない。
ディスククラッシュしてなければ(部分的を含む)論理的破損とかもありえないものなんだね。 知らなかった…orz 便利になったものだ。
WindowsのNTFSなら大丈夫だろう。 Unixでも最近のファイルシステムなら大丈夫だろう。 Linuxは一部のファイルシステムが、ヤバいかもしれん。 RAWの場合は、Oracle次第。
fsckがよしなにぶった切ってエラーの無いようにしてくれてるだけでは? もちろん使えない(w
Oracleの場合はっていうかほとんどのDBMSがそうだと思うけど、 sync書き込みになっているから、ファイルそのものの破壊はないと思う。 ところが、Linuxについては、VFSがきちんとsyncをしないことがあるらしく、いまいち信頼性に欠けるらしい。 LinuxのVFSについては、結構問題になっていて、XFSやreiserFSといったファイルシステムについては、 それぞれがVFS自体にも修正を施した上で実装されているみたいだ。 fsckはメタデータについてチェックするだけなんで、ファイルそのものについてチェックをしてくれるわけではない。
何のための ジャーナリングファイルシステム なのか
何のために 同期書き込み しているのか ちょっと小一時間考えてみます
syncしてたら遅いけどな。 遅延書き込みしないと遅いよ。でも書き込めなかったデータは失う。
REDOログエントリの書き込みや制御ファイルの更新あたりを 同期書き込みしておけばOK。データブロックの書き込みは非同期で十分。
同期であっても非同期であってもファイルに書き込んでいる最中に電源が切れて 読めなくなるようなことはないの? クライアントPCで停電になったあとにチェックディスクすると 使っていたファイルが修復されたりすることがあるけど(完全に修復されるのかどうか分からないけど) サーバーではそういうことはないのかな?
>>536 つ〜か、鯖だと普通はAPCとかついているから、停電になっても
クリーンシャットダウンぐらいは出来るようになってるよ。
万が一、鯖がクラッシュしたりしてもハイエンドクラスのストレージだと
ダブルチェックサム機能で、コラプトブロックとか書き込まない様に
なっていたりするしね。
一応おかしくなった時のために、RMAN使って物理・論理チェックを
かけることも出来るけどね。
>>537 れすさんくす。以前に質問していた人が
サーバークラッシュしてディスククラッシュしていないって書いてあったので
クライアントPCであるような物理的には大丈夫でも論理的に異常になっている可能性は無いのかな?
と、質問してみました。
サーバークラッシュって書いてあるので単純な停電ではなくてハードエラーで落ちたのでしょうから、
その辺はどうなのかな?って。サーバー構成によっては大丈夫な場合もあるってことですね。
>>538 勿論、非同期とかで書き込みしている時とかには、物理もしくは論理で
ブロックコラプションが起きる事もある。
その場合はEEだとRMAN使ってメディアブロックリカバリーでブロック単位で
リカバリかけたりする事も出来る。
独自で作ったOracleの便利スクリプトを紹介してくれ
なるほど。サンクス。DB Magazineも買ってくる。
オラクル入れようと思ったが、カーネル再構築の途中。orz
カーネル再構築なんてまたくだらない事やってるな。
まだ8i使ってるからな。orz
もうサポート対象外では?
そもそもサポート受けてないだろう
去年の10月くらいに8の質問して答えてくれたけど。
oracle9iを使って、ある条件で検索した結果の10〜20件目だけを抽出するSQLを考えています。 下記のSQLで結果は取れましたが、これ以外でよい方法などありましたら教えていただけないでしょうか。 SELECT * FROM ( SELECT ( SELECT COUNT (*) FROM TEST_TBL WHERE DEL_FLAG <> '01' ) AS TOTAL, row_number() over ( ORDER BY XXX ASC) AS row_cnt, MASTER_ID FROM TEST_TBL WHERE DEL_FLAG <> '01' ) WHERE row_cnt BETWEEN 1 AND 20 ORDER BY XXX ASC
(´Д`)
>>549 ググればROW_NUMBER関数を使った例がいくらでも転がってる。
552 :
NAME IS NULL :2007/06/16(土) 18:27:40 ID:I1V9HKtK
教えてください。 外部プロシージャを止めるにはどうすればいいのでしょう? 外部プロシージャをバージョンアップするために、 .soファイルを上書きしたいのですが、 lsnrctl stop でリスナーを停止してもextprocPLSExtProcが浮かんだままで、 cpコマンドで上書きしようとしてもアクセス中なので出来ないと怒られます。 killコマンドでこのプロセスを殺してもいいものなのでしょうか? それともdrop libraryなどで一度oracleから取り除かなければならないのでしょうか? 以上、よろしくお願いします。
>>552 Killってかまわん。
まあ、確実なのはDBシャットダウンすれぱ止まるはずだけどね。
554 :
NAME IS NULL :2007/06/17(日) 13:10:18 ID:h5nfYdZ9
>>553 アホ
DBを止めるとき、lsnrctl stopしたあとに浮かんだままのoracleインスタンスをkillするのか、お前は
>>552 drop libraryすれば.soファイルへのアクセスは停止する筈
555 :
NAME IS NULL :2007/06/20(水) 09:58:28 ID:2tTyyyLm
tabという名前の表を作成したらテーブル一覧が見られなくなりました どうすればいいですか?
そのtabを削除すればいいんじゃね?
>>555 tabというのはsynonymだかんねぇ。
user_tablesからうまく作ってったら?
>>555 取りあえずそのtabをDropする。
んでもって以下のスクリプトで再作成しろ。
CREATE OR REPLACE VIEW TAB
(TNAME, TABTYPE, CLUSTERID)
AS
select o.name,
decode(o.type#, 2, 'TABLE', 3, 'CLUSTER',
4, 'VIEW', 5, 'SYNONYM'), t.tab#
from sys.tab$ t, sys.obj$ o
where o.owner# = userenv('SCHEMAID')
and o.type# >=2
and o.type# <=5
and o.linkname is null
and o.obj# = t.obj# (+)
/
わざわざVIEWの定義を調べてご苦労だけど、再作成はいらん。DROPで充分。 新しいTABをDROPしたくないならSYS.TABで元のTABの内容が参照できる。
560 :
NAME IS NULL :2007/06/21(木) 11:27:32 ID:aqXLPoKz
UPDATE USER_SOURCE SET TEXT = ' FROM TESTA WHERE A = 2;' WHERE NAME = 'PPP' AND LINE = 5 権限が不足しています。エラーが出ますが、なぜでしょうか。
CBO前提で開発してるのに統計採って無いことに気付いた。ありえなくね? 速攻採るべきだよね?ちなみに9.0です。
とるべきとしか言いようがない。
ありえね
>>562 すでに本番リリース済みの場合には、統計情報を収集したことが原因で
コスト計算時に使用される統計情報がデフォルトから収集したものに変わったことにより、
SQL文のアクセスパスが変わってパフォーマンス劣化が
発生する可能性も有るので注意したほうがいいと思う。
もし、パフォーマンス劣化が発生したら、そのSQLに影響している統計情報を
deleteすること。
566 :
562 :2007/06/26(火) 09:49:56 ID:???
>>565 thx検証しながらやってくYO。
数が多くて大変だがorz
567 :
NAME IS NULL :2007/06/26(火) 12:03:09 ID:bHNCzBBO
条件に当てはまる行を先頭に移動させる方法ってありますか?
568 :
オラクル太朗 :2007/06/26(火) 20:24:42 ID:MCoTLU9N
オラクル10g勉強中です。 オラクル10gを削除したいのですが、 プログラム追加と削除から消せないようなので、 削除のしかた教えてください。 あとインストールの参考になるようなサイトがあったら教えてください。 お願いします。
569 :
オラクル太朗 :2007/06/26(火) 20:28:28 ID:MCoTLU9N
追加↑ OSはWindows2000serverです。
勉強後に消した方がよくないか? 削除したいのならインストールできたのじゃないか?
>>568 1. インストール時と同じように、OUIを起動する。
2. インストールされているソフトの一覧を出す
3. 消したいソフトを選んで削除
その後に、完全にクリーンインストールするために以下のレジストリを削除。
My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
My Computer\HKEY_CURRENT_USER\SOFTWARE\ORACLE
My Computer\HKEY_LOCAL_MACHIN\SYSTEM\CurrentControlSet\Services以下のOracleとつく全て
あとはついでにC:\Program Files\Oracleフォルダも消しておけ。
窓でのDBインストールなんて、クリックしていきゃ勝手にインスコされるだろ。
>>568 つ「Oracle Database インストレーション・ガイド」
ほれ、これで「Oracle Databaseソフトウェアの削除」方法でも勉強しろや。
インストール方法も勉強できるぞ。
573 :
オラクル太朗 :2007/06/26(火) 23:37:26 ID:MCoTLU9N
NAME IS NULLさんありがとうございます。 学校ですでに10gがはいってるサーバーマシンを借りてきて、 すでに入っているものは消してから使ってくださいといわれたので、 インストールもアインストールもしたことなかったので、 途方にくれてたとこでした。 本当ありがとうございました。
574 :
572 :2007/06/27(水) 00:18:22 ID:???
「Select name from itemmaster where id1 = 0000or id2 = 0001」 上記のSQL文は、間違いだと思うのですが、何故かSQL Plusで実行したら 通りました。 上記のSQL文って正しいのでしょうか? id1とid2はchar型でシングルクォートを付けてないし、0000とorの間に スペースが無いし、普通は通らないと思うのですが、、、 何か分かる人はいるでしょうか? ちなみに、Oracle 10g 10.1.0.2です。
577 :
NAME IS NULL :2007/06/27(水) 01:28:29 ID:qWRscJ4i
JPublisherって使ってる人いる?
>>575 シングルクォートが無くても、暗黙的に変換してくれる。
ただし、明示的にChar型を宣言していないため、索引が使われない
などのデメリットはある。
スペースも勝っての判断してくれる場合がある。
以下のSQLを試してみるがいい。
select*from user_users;
579 :
オラクル太朗 :2007/06/27(水) 22:29:26 ID:DoTZCG5U
>>574 さんありがとうございます。
2ch初心者なので、571、572、573の名前がNAME IS NULLで同じで
同一人物だと勘違いしていました。
571、572、573さんありがとうございます。
サーバーマシンはなんとか、DBにconnectできました。
クライアント側にもクライアントCDをインストールしたのですが、
サーバー側に接続を試すToolが入っていません。
インストールタイプをInstantClientしか入れてないからでしょうか?
あとインストールCDが多すぎて、どれが必要なのかわからない状態です。
Oracle Database リリース・ノート 10g リリース2(サーバー側)
Oracle Database Client インストレーション・ガイド 10g リリース1(クライアント側)
をインストールしました。ほかにインストール必須なCDはありますか?
教えてください。お願いします。
>>579 SQL*PLusってツールがはいっていない?
581 :
オラクル太朗 :2007/06/28(木) 06:54:42 ID:3LjSIdu7
580>> SQL*PLusははいっています。
>>579 どこにインストールしたか分からないが、tnsnames.oraの設定をまずしろ。
そうしたらコマンドプロンプト開いて「tnsping <DBエリアス>」と打ってみろ。
ちゃんと設定がうまくいっていたら、後はSQL*PLUSでもなんでもつながる。
583 :
オラクル太朗 :2007/06/28(木) 07:03:14 ID:3LjSIdu7
582さんありがとうございます。 いまから学校いって早速試してきます。
oracle9iのjavaクラスの中でネットワークドライブにファイルを書き出したいのだがどうもうまくいかない。 マッピングしても java.io.FileNotFoundException: No such file or directory ねーよって出ちゃう ローカルドライブなら普通に書き込めるんだけど。 なで?
>>585 Windowsっす。
今のところXPっす。
>>586 Administration Assistant for Windows の起動オプション
のNTアカウントをネットワークアクセス権のあるユーザーにしてみ
ローカルアカウントではネットにアクセスできん
>>587 マジスカ
ありがとっす!
やってみるっす!
589 :
オラクル太朗 :2007/06/28(木) 21:45:07 ID:3LjSIdu7
クライアントからサーバーに接続はできたのですが、 クライアントからサーバに入っているテーブルにアクセスしても見れません。 サーバーがわでsysユーザーでテスト用にdeptテーブルを作り、ユーザーfoo を作りました。クライアント側でfooでログインして、dept表を見るには どうしたらいいのでしょうか? 教えてください。
>>589 GRANTでfooに必要な権限を与える。
SYSで作ったテーブル名はsys.deptになってるはず。
そもそもSYSアカウントでユーザーテーブルを作らない。
>>587 ユーザー作ってそのユーザーでオラクルインスタンス起動した。
プロセスマネージャーではそのユーザーで起動してる。
再起動もした。
リスナーで怒られたのでリスナーも同じユーザーに
けどネットワークドライブに書き込めん・・
java.io.FileNotFoundException: No such file or directory
uncでアクセスしてもネットワークドライブで割り当ててもだみっす。
もちろんdbms_java.grant_permissionで権限は与えてる・・・
なぜなのかぁぁぁぁ!!
>>591 サービス(インスタンス)もちゃんとそのユーザーで起動しているか?
>>592 そうなのよぉ
taskmgrで見る限りちゃんと変わってるんですよぉ
で、そのまま起動するとリスナーでora-12500で怒られるので
リスナーのユーザーもそのユーザーに合わせて正常に起動したんですよぉ
謎っす
なんか単純なとこでしくじってるのかなぁ
あと考えられるとこってありますか??
GODよ教えてくださいっす
594 :
オラクル太朗 :2007/06/28(木) 22:39:19 ID:3LjSIdu7
590>>さんありがとうございます。 fooには、grantでconnect権限をあげただけです。 それでは、サーバー側でuserをもう一人作ってそのuserでテーブルを作れば、 クライアント側でfooユーザー接続してみることはできますか?
>>592 なんか出来た・・・・
IPアドレスじゃなくてNETBIOSの名前でアクセスしたら出来た・・・
\\hoge\hoge.txt○
\\10.8.0.1\hoge.txt×
みたいな・・・
おいおい・・・
いや、でもほんと助かりますた。
すげえ感謝っす
>>594 ユーザを作成して
そのユーザでテーブルを作成して
クライアントからはそのユーザで接続すればOK
597 :
オラクル太朗 :2007/06/28(木) 23:06:18 ID:3LjSIdu7
596>>さんありがとうございます。 早速明日学校いって試してみます。 一つクリアしたらまた一つなかなか前に進まなくて本当大変です。 ここで問題が解決していきとても感謝です。 ありがとうございます。
>>119 何年か前、協力会社としてJBCCの開発やったんだが・・・
技術者はいい人は居るんだが、スキルが糞。
営業は売り上げ上げる為なら、とにかく仕事を取ってきて技術者に「お前らやれ」
ってきたもんだ。「技術的に無理」っていったら、「客には出来るっていっちゃったから、
何とか作れ」って言われたぞ。売れれば何でもいいのかと子一時間。。。
IBMのパートナーの癖してAIXがわからんし、「smit」の話をしたら、「smit」って何?
とこれまた来たもんだ。最近ではさすがにUnix系が出来ないのがまずいのか、LPIの
ビジネスパートナーになってるみたいだが。。。
http://lpi.or.jp/bp/list/index.shtml 上はビジネスパートナーになってるソースね。
まあ格安案件でも取りにいく所はそんなものです。 嫌なら、予算多めにして他の業者使えばいい話だ。
600 :
オラクル太朗 :2007/07/03(火) 22:17:54 ID:H6oFNBuZ
596さんありがとうございます。 うまくクライアントから表が見れました。 今バックアップとリカバリのところを勉強しています。 Enterprise Managerで設定しているのですが、ポリシーの設定後ホストの資格証明で ユーザー名、パスワードを入れてもうまくいきません。 ERROR:WRONG PASSWORD FOR USERという エラーが出ます。 user名はSYS passwordはoracleでと入力しているのですが、記述の仕方が 悪いのでしょうか? 教えてください。
>>600 DBのパスワードを入れてどうする。
ホストにログインするユーザー名とパスワードを入れろ。
DBコネクトとログインの区別がついてないってカコ悪い。
603 :
オラクル太朗 :2007/07/04(水) 07:02:50 ID:+iHTJJZc
601さんありがとうございます。 早速学校行って試してきます。
604 :
NAME IS NULL :2007/07/14(土) 12:22:18 ID:lfqZZbE2
このスレ的に11gってどうよ? まぁまだ発表されたばっかだけど... 今のところ,俺的にはあんま欲しい機能は無くて, 10gのマイナーバージョンアップって感じかな? 8iと10gはがらっと変わってメジャーバージョンアップって感じだったけど.
単体で使う分には8iから大して変わりはないけどな。 11gは管理ツールの充実って感じがした。業務で使ってると、必要と要求の有った機能が割とサポートされてるって思った。
すみません。 PL/SQLでストアードファンクションを使って、 値を複数返したいのですけど、出来ますでしょうか? returnで返す値を複数指定出来ないかと思って 「RETURN a,b」みたいにやってもダメでした。 select FUNCTION() from emp こんな感じのSQLで複数値が返ってくる方法は無いでしょうか。
自分で答え書いてるじゃん。
ファンクションの中にファンクションをネスト。 そんなことより質問PL/SQLで 表名 test select * from test; A列 B列 1 2007/7/17 2 2007/7/17 3 2007/7/18 4 2007/7/19 として 3 2007/7/17 3 2007/7/18 4 2007/7/19 を得たいんだけど 何かいいてない? A列の値を B列でグループ化しつつsumしたいんだけど カーソルとカウンタかませるとできそうだがプログラムが長くなり祖でな・・・いい手ないかな
質疑応答すれのがよかったか。ってかこの板人口少なそうだな。。。
>>608 select sum(id),min(val) from hoge group by val;
でどう?
611 :
608 :2007/07/17(火) 22:51:05 ID:???
>>610 即レスサンクス。
参考にいたします。感謝感謝。
emagent.exeって何をするプロセスですか プロセス停止すると どういう問題が出ますか
ヒント em = Enterprise Manager
実行時間のかかるSQL分があり、文法エラーがないかを確認したいのですが、 実際に実行しないで確認する方法はあるでしょうか? 本来、実行してから強制終了すればいいだけなんですが、 職場の事情で、インフラチームからSQL実行中の強制終了はするなと言われて、 エラーチェックできずに困っております。
構文エラーのチェックだけならset autotorace traceonlyでいいんちゃう。
traceonlyは実行しちゃうよ。結果を表示しないだけ。 explain planがいいんちゃう。
cseを使い場合、odbcドライバコピるだけでは動かないのですが クライアント入れないと駄目ですか?
>619 だめです 素直にクライアントインスコ汁 つか、odbcドライバもファイルコピーだけじゃ動かんのじゃないか確か。
インスタントクライアントの方が容量的にはかなり小さくなるな。 sqlplus、jdbc、odbcと必要なものはそろっているし。 環境変数の設定やodbcドライバの登録とかを手でやらないといかんけど。
インフラチームって、もしかして本番機とか? 確認は検証機でどうぞ。 強制終了して、他の業務ジョブに迷惑かけたら始末書ものだよ。
unix版から飛んできました。 SQL*FORMSという古いソフトを使っており、これがOracle7でしか 動かないのですが、Oracle7のままsolaris8以降の新しいOSに 乗せ変えたツワモノはいますか? もちろん、DBを保証のあるバージョンにのせ変えるのがすじ なのは分かってますがそれができないのです。 solarisのバイナリ互換性から考えると普通に動くと思うのですが。
>>624 O/S新しくするのなら、アプリもこの際新しくしろや。
そんなサポートされいないバージョンのものを使い続けている方がどうかしてる。
エクスポートファイルからテーブル一覧をクリップボードにコピーしたいのですが、 imp show=y file=xxx.dmp を実行すると、ログイン名を指定されます。 怖くて入力できませんが、このshowは実行時に詳細を表示するオプションなのでしょうか?
>>626 verboseオプションではなく、show onlyオプションだよ。
つまりdmpに含まれるcreate table文など一覧を見る事が出来る。
show onlyというオプションがないのですが、コマンドラインで指定するオプションではないのでしょうか。 遅れてすいません。Oracle9iです。
>>628 だからshowはshow onlyの意味であって、show=yと指定すれば
実際のimpは行なわれずに、表示だけされるんだってば。
verboseという意味のshowでは無いということ。
>>629 すいません。
ご親切にありがとうございます。
my_view の定義が select a, b, from my_table where a = 1 の場合 select a, b from my_view where b = 1 と select a, b, from my_table where a = 1 and b = 1 ではクエリーのパフォーマンスに違いが出てくるでしょうか? 客先からの仕様変更が激しく、アプリに影響がないようにすべてVIEWに対してクエリーしようかと考えています。 危険な方向性ですかね?
その SQL はエラーになるんじゃないかな。
>>632 実行計画取れば分かるが、viewに対してQueryを投げた場合、まずOracleは
内部的にそのSQLを書き換えて、実行パスを決定している。
>>631 中身を見たかったらこれで全部出るだろ。
imp userid=\"/ as sysdba\" file=hogedat.dmp ignore=y show=y full=y log=bogeimp.log
javaとかでフリーなライブラリがネット上にいろいろ転がっていますが、 これあると便利的なストアードファンクション・プロシージャを提供しているサイトとかって知ってますか?
登録したMACアドレスだけ接続を許可する様にしたいのだけど 何か方法有るかな?
やっぱり内科。 訳ありでOS側では制御出来ないのよ。
>>640 だったらF/Wなり、iptablesなりかませればいいじゃん?
>>641 スマソ 要件が詳しくなかったね。
環境は・・
OS:WindowsServer2003Sp2
Oracle10g
で・・
要件は「登録したMACアドレスだけのIPをOracleに接続を許可しる。ただし接続コントロールはOracle側でおこなうこと」なのよ。
他の事(OS設定や機器設定及び機器追加)は一切出来ない・・・orz
スマソ 訂正。 誤:登録したMACアドレスだけのIPをOracleに接続を許可しる。 正:登録したMACアドレスだけをOracleに接続を許可しる。 接続はTCP/IPでクライアントはDHCPでIPコロコロ変わります・・orz
ボラクルってMACアドレス拾えないだろ?
>>642 結論から言うと無理だろ。
その用件考えた奴はアホだ。
646 :
642 :2007/07/26(木) 18:44:47 ID:???
スマソ DLL1本作って事故解決しました。
んでも、その気になればMACアドレスは偽装できるんだから 無駄な努力、とまで言うのもアレだが、おバカな案件だな。
unixのコマンドラインから、テーブルをcsv形式でエクスポートしたいのですが、 expだとダンプ形式にしかできないと認識しています。 何か方法はないでしょうか。
>>648 OTN-JapanでCodeTips検索してこい
ボラクルってIPv6でお話し出来ますか?
>>653 Pv4/ IPv6の混成環境は可能。
IPv6だけはまだ。
>654 なるほど。ありがとうございました。
sqlplusはSQLエラーのときエラーの行数が出ますが、 javaでjdbcを使ったSQLの場合、エラー行番号が取れません。 行情報はsqlplus独自のものでしょうか?
>>657 ありがとうございます。
たとえば、javaのjdbc経由のアプリで、エラー行番号を取得することはできたりするのでしょうか?
>>658 そもそも行番号というのはなんですか。
あなたが思っているような単位でSQLは解釈されません。
>>659 行番号は、つまり行は改行コードのことです。
>>620 またまた質問ですみませんが、
どうしてもoracleクライアントをインストールすること(インストールプログラム使用)を許してもらえません。
そこでですが、別のマシンにインストール済みのoracleインストールディレクトリを丸まるコピーし、
それを別のマシンに同じディレクトリにコピーし、oracleインストールディレクトリ/ora92/binにパスを通し
cseでodbcではなく、oracleネイティブ接続で接続すれば、DB接続できるでしょうか?
インスコしちゃだめって言うなら諦めた方がいいと思うが
同じく。 インストールという行為を禁止されているなら必要な理由を提示して許可をもらえばいいし、 そもそもクライアントからOracleに直接接続するなというならその方法でできたとしてもNGだろ。 業務上必要なのにインストール許可を出さない会社ならやめてしまえ。
>661 もう少し技術的な観点からも補足すると cseは長いことバージョンアップしてないから新しいoracleクライアントだとどのみち使えんかもよ
>>664 ありがとうございます。
Oracle9iのWindows版ではうまく動いています。
sql analizeでログインできません。 DBには通常のユーザを登録しSELECT ANY TABLE権限もありますが、 下記のエラーメッセージが出ます。 このリポジトリーユーザは、特別なユーザなのでしょうか? on リポジトリ接続 while レポジトリ・データベースに接続中エラーが発生しました。 XP-21162: 現行のリポジトリ接続には、十分な権限がありません 原因: Oracle Expertルール・エンジンでは、SQL文の妥当性チ ェックを実行するために、SELECT ANY TABLEデータベー ス権限が必要です。 アクショ リポジトリ・ユーザーの現行の権限をチェックしてくだ ン: さい。
>>666 以下のどちらかで対応しろ。
- そのログインユーザーに DBA権限を与える
- init.oraでO7_DICTIONARY_ACCESSIBILITY=trueを指定
create table xx した日にちを取得することってできますか。
user_objects
670 :
NAME IS NULL :2007/09/04(火) 08:41:28 ID:pXMBPiTp
とても古い環境なんですがNT4に対してoas4をインストールしましたがマネージャーが起動しません。ホスト名+ドメイン+ポート接続でも検索エラーになります。 環境設定において特別ななにかが必要なことってありますか?なお、ネットには接続できました。
複数のテーブルが入っているエクスポートファイルから、1つのテーブル分だけを簡単に取り出す方法ってありますか? たとえばA,B,Cが入っているDMPからBだけが入っているDMPを簡単に作りたいのです。 いったん、インポートしてからBだけエクスポートすれば?というのは無しです。 そんなことが簡単に出来てしまうコマンドとかはないのでしょうか。
673 :
NAME IS NULL :2007/09/05(水) 01:09:20 ID:huCY+7z7
>>672 いったん、インポートしてからBだけエクスポートすれば?
>>674 ありがとうございます。
しかし、それは、そのテーブルだけインポートするということですよね。
すいません、説明不足でした。
毎日、フルでexpしたものを何日分か残す様になっています。
サーバは遠くで、外部からもアクセスできない環境にあるので、
それで、何か調べる必要が出てきた時に、DMPを送ってもらって調べたいのですが、
さすがにフルexpだとサイズが大きすぎて難しいので、必要なテーブル分だけ抽出出来たらなと思ったわけです。
稼働中のDBですので過去のデータなどをいったんインポートするなども出来ません。
それで、簡単なコマンド等で、フルDMPから一部だけ切り出す方法がないかと思ったのです。
ご存じの方がおられましたら、よろしくお願いします。
>>672 imp時にBだけ指定すればいいじゃん?
>>675 現実的な方法としては、その本番鯖の近くで別DBを作って貰って、そこでその
表BだけImpしてExpじゃないかねぇ?
>>675 ユーザを新しく作ってそこに B だけインポート。
>>676-678 ありがとうございます。
いずれにせよ、コマンド一発で簡単にというわけにはいかないということのようですね…
----------------------------------------------- select * from (select reg_date from emp_main where customor = 'CUS001' order by reg_date desc) where rownum = 1 ---------------------------- INDEX NON-INDEX COST 18 242 ----------------------------------------------- select * from emp_main where reg_date = (select max(reg_date) from emp_main where customor = 'CUS001') and customor = 'CUS001' and rownum =1 ---------------------------- INDEX NON-INDEX COST 6 230 -----------------------------------------------
681 :
NAME IS NULL :2007/09/11(火) 13:56:13 ID:qUTPzdOn
Orcle8iですが教えてください。 あるパッケージ(国内で有名なベンダー)を使っていますが dbサーバ起動時に削除したデータが登録されている現象が あります。 実行制御データですが、まるでスタートアップの処理で作成 される感じです。 (保守契約が切れていまして問合せできません) Orcle8iに起動時に処理させる機能はあるんでしょうか?
通常のテーブルなどに設定するDMLトリガーじゃなく、データベーストリガー(この場合、Startupトリガー)なら Oracleの起動時に実行できますね。8iで可能かはマニュアルを見て下さい。通常のCREATE TRIGGER文のとこにあれば載ってると思います。
683 :
NAME IS NULL :2007/09/13(木) 06:28:31 ID:EzBaCPo5
ありがとうございます。
684 :
NAME IS NULL :2007/09/13(木) 09:23:19 ID:rtETd5f1
>>682 Startupトリガーが、dbのどこを見ればよいのですか?
Object Browserで見ていますが・・・・
初心者ですみません。
SELECT * FROM DBA_TRIGGERSでいけるんじゃないかな。
686 :
670 :2007/09/16(日) 16:39:23 ID:???
もうひとつすいません。 OAS管理画面(4.8.0.1)でツリーが表示されません。 原因が皆目つかないのですが誰かご存知でしょうか? ちなみにIEの設定ではJAVAスクリプトはONになってます。
SELECTが妙に遅いのでいろいろ調べてインデックス付け直したりしたわけですが一向に改善されず・・・ 原因はSQL文でVARCHR2の項目にシングルクォートつけるの忘れてただけでした 無駄な作業させてごめんなさいごめんなさいごめんなさい(;´Д`)
imp、expするときって、DBの文字コード依存しちゃいます?
>>690 思い切りな。
まあ、大抵は自動で変換してくれたりするがな。
oracleサーバーが実行したSQLのログを簡単に見る方法はないですか? 外部のシステムがoracleを使用していて、多分そこで悪さをしているのですが、 文句を言う前に証拠を見せろ野一点張りで… 何とかしてSQLのログを調べたいのですが、方法はありますか?
定義が同じ、A・Bがあって、差分を取りたいのですが、簡単な方法あれば教えてください。
インスタントクライアントって9i対応ないのでしょうか。 Windows(インスタントクライアント10g) → unix(9iサーバ) の環境で、 cseで接続できるでしょうか?
>>691 データの差分ということ?
だったらminus関数使えば?
select * from A minus select * from B
といった感じに?
>>690 簡単に見るというのは難しいね。
ファイングレイン監査か、もしくは10g OEM、あるいはサードパーティ製の
ツールが必要だろうね。
>>692 出来る。
10gクライアントから9i DBの接続はサポートされている。
>>695 ありがとうございます。
instantclient-odbc-win32-10.2.0.3-20061115.zip、instantclient-basic-win32-10.2.0.3-20061115.zipをダウンロードして
ダウンロードフォルダーにパスを通し、ODBCのインストールも実施して、
ODBCのドライバリストに登録されたことも確認しましたが、
システムDNSの登録の際に、インストールがされてませんのエラーが出ました。
クライアントのインストールをしなくても使えると書いてあったのですが、これはどうしてでしょうか?
697 :
NAME IS NULL :2007/09/28(金) 20:49:08 ID:FkBhlVIQ
SI オブジェクトブラウザ最強
699 :
NAME IS NULL :2007/09/28(金) 22:42:48 ID:ncTp7tKO
>>698 その件はshutdown abortを通常運用に組み込んでいたことが原因の一つにあるみたいなんで、
運用方法にも問題があるような気がする。
shutdown abortを前提とした運用を設計したやつってすごいw
>>696 面倒だから10gクライアント入れておけ。
>>699 Oracleが開発に加わっていたのだから、最初に教えてあげるべき。
それか、問題と認識していなかったか。または、
サポートや障害発生時の臨時稼動の費用は 開発より何倍も搾り取れるからシノギ行為を黙認した または、
>>703 神戸新聞社の組版システムはNECが開発、オラクル社製品のサポート「も」行っている。
じゃん
では、NECが糞って事でFA?
707 :
NAME IS NULL :2007/09/30(日) 17:17:16 ID:v3DOfxU+
>>706 NECは糞じゃない!!!!!
2006年3月に神戸新聞社の組版システムをカットオーバーさせた。
そして今年Oracle Award 2007【Oracle Partner of the Year(最優秀賞)】を受賞した
理由は
************
昨年度日本オラクルと共に顧客ビジネスに最も貢献したパートナーに贈られる賞であり、
NECはオラクルとの協業20周年という節目の年に、年間の最優秀賞を受賞しました。
************
http://www.nec.co.jp/middle/oracle/award/index.html 最優秀企業が糞なわけないじゃん!!!!!!!!
>>707 できレースということか!!!!!!!!!
NEC……Oracle…… 計った喃 計ってくれた喃
>>707 まさかAFO?
----------
たくさん売ってくれてありがとう だからOracle社が発行する(他では只の紙切れ)
賞状をあげるよ。もっと売れアホンダラ
----------
と見えるが。
・・・とここまで書いて釣りだったか?w
OracleってDB以外にもなにか売ってるけど どれが幸せ?
>>711 他の製品を買うと、乾いた笑いしか出てこない状況になれます。
それを幸せと思えるマゾ体質な人にはお勧めです。
714 :
NAME IS NULL :2007/10/05(金) 11:21:00 ID:QMmmkZwG
oracle 8.1.7 とかで現在日付をselect sysdate from dualとかでとれるけど、 ミリ秒まではどうやるの?oracle9以降だったらtimestamp型があるからうらやますぃ。
javaストアドを使う
717 :
NAME IS NULL :2007/10/16(火) 23:16:54 ID:A38dmDSy
ORACLE無償版をVISTAにインストールして、 データベースを起動させたら 『 C:\oracle\BIN>net start OracleXETNSListener システム エラー 5 が発生しました。 アクセスが拒否されました。 C:\oracle\BINN>net start OracleServiceXE システム エラー 5 が発生しました。 』 のメッセージがでるんですけど、 どうすればいいのか教えてください
とりあえずUACを切ってみる。 OracleXEがVistaに対応するのを待つ。 OSをWindowsXPやLinuxなどにかえる。
理由がわからないのならVista使うのを止める。 解ったとしても解決するまでかなり面倒な操作が必要だと思う。 OracleはWindowsにとってはあまりお行儀が良くないのでこういう事が起きるのかもしれん。
720 :
NAME IS NULL :2007/10/17(水) 01:27:57 ID:71Y6EBkY
よろしくおねがいします。 Oracle9.2iですが、実行計画を取得時に、 sql*plusから SQL> set lines 80 SQL> set pages 0 SQL> set autotrace on SQL> select * from hoge; のようにして↓↓↓↓↓↓のような表を出力したいのですが、 マニュアルやネットを見てもその方法が分かりません。 どうかお助けくださいませm(_ _)m Plan hash value: 2339479017 --------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 | | 1 | TABLE ACCESS FULL | HOGE | 1 | 2 | 2 (0)| 00:00:01 | ---------------------------------------------------------------------
722 :
NAME IS NULL :2007/10/17(水) 02:17:38 ID:71Y6EBkY
>>721 ご返事ありがとうございます。
そのURLです。感謝です。
内容は、
1.sys as sysdbaでplustrace.sqlを実行
2.scott に plustraceを付与
3.scottでutlxplan.sqlを実行
4.scottでhoge表を作成
5.set autotrace on → select * from hoge
すると、
実行計画
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (FULL) OF 'HOGE'
統計
----------------------------------------------------------
0 recursive calls
0 db block gets
3 consistent gets
0 physical reads
0 redo size
228 bytes sent via SQL*Net to client
372 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
となり、rows,bytes,cost(%cpu),timeなどが表示されません。
timed_statisticsはtrue、statistics_levelはtypicalです。
よろしくお願いします。
724 :
NAME IS NULL :2007/10/17(水) 22:50:16 ID:71Y6EBkY
>>723 ありがとうございました。
バージョンあげないとダメなんですね。。
>>724 EXPLAIN PLAN FOR select * from hoge;
@?/rdbms/admin/utlxpls.sql
726 :
NAME IS NULL :2007/10/18(木) 22:25:29 ID:J6h+RjKg
>>725 度々ありがとうございます。感謝です。
timeが出ないのが残念ですが、set timing on
で妥協します。。
Oracle 11g 試した人は?
Oracle9iで、OSがWindows2003です。 上記の環境で使用しているSQL-Loaderが時間がかかるようになってきました。 単純にデータが増加してきたのでしょうがないのですが、 短くする方法というのはないでしょうか? ネットで調べた結果、「ダイレクトパスインサート」という方法を 使用すればいいのかな?と思ったのですが。 ちなみに処理自体は、同じDB内のユーザーA.テーブルAから 項目順をかえ・日付項目を文字列化し・改行文字を置き換えて ユーザーB.テーブルBに毎日洗替でINSERTしてます。 これは、一旦SQL文で上記の置換などを行ったものをテキストファイルに 書き出し、それをSQL-Loader(REPLACEモード)を使ってINSERTしてます。 どうかお知恵をかしください。よろしくお願いします。
>>731 可能ならREPLACEよりTRUNCATEだろうな。
ダイレクトパスを使うならなおのこと。
速くはなるが制限もあるのでしっかりテストしてくれ。
>>727 最初からSQL Developerはいってた。
>>731 それってSQL*Loader使ってやらんでも、PL/SQLか何かで回して
やれば良さそうな気がするんだけど、気のせい?
735 :
731 :2007/11/15(木) 21:03:14 ID:???
>732 ありがとうございます。やはりそうでしたか。 いろいろ制限もあるみたいですし、テストやって考えます。 >734 ぶっちゃけそうです。ていうか自分で作ったなら、 何で一旦テキストファイルに吐き出すなんていうムダなことを思いつくんだ? ていうぐらい謎のプログラムなんです。 違うユーザーとはいえ、普通にSQL文で対応可能なんですよ… それにダイレクトパス使えばもっと高速と。 ただ、今回は時間と工数がないので、とりあえずの対応としてローダーを 早くしようとしております。
>>735 もし工数が無いのなら、Viewか何かで対応したらいいんじゃないかと思うんだが?
同じ項目のテーブルAとBがあって Aに有ってBに無いレコードをBにインサートするには、 INSERT INTO B ( SELECT * FROM A MINUS SELECT * FROM B ) でOk?
>>737 ・MERGE文
・↓のようなものをインサート
(
SELECT A.* FROM A
LEFT OUTER JOIN B ON (~~)
WHERE
B.rowid is null
)
・↓のようなものをインサート
(
SELECT * FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE A.primaryKey = B.primaryKey ~~)
)
・↓のようなものをインサート
(
SELECT * FROM A WHERE A.primaryKey NOT IN (SELECT B.primaryKey FROM B )
)
データベースリンクって使用して何か 困ったこととがありました?
>>739 やたらと質問が抽象的だな。
昔は結構バグとかあったけど、最近は結構枯れてきている技術だから
そんなに不都合は発生しないと思うけど?
DBリンク先と接続できない場合に,障害検知までに若干時間がかかる. コネクションがしばらく残るから接続数の余裕がシビアな環境では思わぬリソースを食う. そもそも昨今のHDD容量なら,DBリンク張ってサーバを分割する必要はあんま無いと思う.
DBリンクって単純にサーバ分割するためのものか?
派閥を分けるのにも使える
別システムにマスタがある場合とかに使うけど、なるべくなら使わないでほしい。
複製の方が一般的なのかな?
例えば受注管理システムと生産管理システムが別々のDBに入っている場合で, データのやりとりを円滑にするためにDBリンク張ったりするんだろうけど, この場合,受注管理と生産管理をそれぞれ別スキーマとして, 同じDBインスタンスに放り込んで,シノニム経由なんかにした方が合理的, ついでに昨今のサーバなら幾らでもデータ入るんだから, 同じサーバ内に同居させた方が良い,と言う話ですな. 参照のみならマテリアライズドビューを噛ました方が, 最悪DBリンクが切れても参照だけならできるから良いかも.
>>746 必ずしも全部を新規構築できるわけじゃないから、
やむを得ず DB link を使うということはあると思うけど。
ストレージも信頼性の高いものを使うと恐ろしい値段になるし、
まだまだ「幾らでもデータ入る」というわけじゃない。
IBM DS8000 とかのことを言ってるんだけどね。
746 の言うこともわかるので、場合によりけりだろうかと。
749 :
NAME IS NULL :2007/11/20(火) 21:35:05 ID:1MXWt+Kj
少しは運用の事考えろよ。 なにも考えずに合理的ってアホか
I was just a child when the stars fell from the skies.
But I remember how they built a cannon to destroy them.
And in turn how that cannon brought war upon us.
War was an abstract idea, nothing more than a show on TV.
As a child, I only saw it as something that happened in some far away land...
Until that final day of summer...
One day while on my way to school, I looked up in the skies.
A sound like distant thunder.
I'am a girl in love, just a girl in love.
oracleのpl/sqlをunixのコンソール上でデバッグしたいのですが、 そんなコマンドあるでしょうか?
まず、Oracleの製品に対して知識を身につけることをお勧めする。 クライアントツールで該当製品が存在しないか調べるように。
>>761 SQL*PLUSのプロンプトでshow errorで一個ずつ潰していく。
765 :
NAME IS NULL :2007/11/23(金) 08:51:25 ID:wJPDrYJd
んで、show errors でわからんかったら、 SQL Developerでステップ実行したら、いいんじゃね?
ユーザにデバッグ権限与えてしかるべきポートを開きそこに接続
770 :
NAME IS NULL :2007/11/24(土) 16:19:47 ID:Lf07jaAJ
OracleでつかえるSQLクライアント標準で付属してないの? フリーとかシェアつかうの禁止なんだけどどうすれば.... SQL*PLUSのプロンプトでがんばれと
>>770 SQL*Plusはお前が考えているよりずっと高機能だぞ。
一度マニュアルをちゃんと読んでみるといい。
>>770 11gからはSQL Developerが標準で付いています。
付いていない9i, 10gでもダウンロードすればいいでしょう。
EMないしOEM使えばいいじゃん。
SQL*Plusに不自由を感じた事がないんだが。
gvimとかxyzzyのsqlplusモードを使えば? 一応,DBに対してはsqlplusで接続してることになるから規約違反にはならないと思うけど. もしくはそれらを参考にsqlplusのフロントエンドを自作するか.
>>770 つ「ACCESS + ODBC」
俺なら絶対にやらないけどwww
Object Browserでも買え。
最終的には
>>777 に同意。
ORACLE M@STER
PL/SQLの開発で使うのに、 SQL DeveloperとPL/SQL Developer、どっちが良く使われてンの? 両方落として試してみたけど、EasyさではPL/SQL Dev. のような感じがした。 ていうか、SQL Dev.は重過ぎる(64X2 3800+)
ObjectBrowserで開発しなくてはいけない俺はいったい・・・ はっきり言って運用ツールだよなこれ?
いいえ、ケフィアです。
>>783 運用ツールとしてもそこまで優秀とは思えない。
まあ、適当にがんばれ。
>>783 マシンは買い換えられない、高いツールも買えない
完全に貧乏人のための寄せ集めツール
ま、俺も個人購入で使ってるが・・・
787 :
NAME IS NULL :2007/12/08(土) 15:32:37 ID:bXZiXaG3
>782 テキストエディタとSQL*Plusっていう人も多いかも。
>>787 いや、漏れも何年か前まではsql*plusのworksheetオンリーだったんだけどね。
今更そんな環境には戻れん。特にデバグ効率が違いすぎる。あとコード補完。
真のオラクラーだとplusだけでデバグ出来無きゃならんのかも知れんけど、実際の現
場ではとにかく効率重視な訳で。
alter table 移動したいテーブル名 move tablespace 移動したい領域名 で移動中に、移動したいテーブル名に対してinsertした場合は、insertがロックされ移動終了後に正常にinsertが成功する流れになるでしょうか?
790 :
NAME IS NULL :2007/12/28(金) 00:59:43 ID:1F8gzvEg
>789 索引が付いていれば、索引が無効になるので、insert時にエラー。 そうでなければ、成功。
791 :
NAME IS NULL :2008/01/16(水) 13:50:31 ID:7pbGQp1K
どなたかご存知であれば教えていただきたいのですが、 会社でオラクルを購入することになりました。 一応、『ORACLE Standard Edition ONE 10g (10.1.0) 5NUP 製品版 for Win』の購入を考えています。 WEBアプリケーションの開発に使用するのですが、 開発に使用する端末のスペックは以下のとおりです。 CPU:mobile AMD XP-M 2400+(1.8GHz) メモリ:1GB 上記スペックでオラクルは使用できますでしょうか? もう1点教えていただきたいのですが、 購入しようとしている製品は9万円弱なのですが、 同じ5クライアントの製品で 『ORACLE Standard Edition 10g (10.1.0) 5NUP 製品版 for Win 』 というのがあります。(こちらは12万円くらい) この2つは何が違うのでしょうか? 色々調べたのですがわからなくて質問しました。 よろしくお願いします。
792 :
NAME IS NULL :2008/01/16(水) 14:01:54 ID:7pbGQp1K
789です。 使用しているOSを書くのを忘れました。 OSは WindowsXP HomeEdition Version 2002 SP2 です。 ほかのスレッドを見ているとHomeEditionだと動かないとか、 動いているとか色々な人がいるようですが…実際のところどうなんでしょうか?
>>791 その程度の機種・用途なら、無料のExpressEditionを使うべきでは?
あと、実運用ではなく、開発のためだけであれば、そもそもライセンスを買う必要もない。
795 :
NAME IS NULL :2008/01/16(水) 14:52:43 ID:7pbGQp1K
>>793 情報ありがとうございました。
やはりHomeEditionはサポート対象外なのですね。
796 :
NAME IS NULL :2008/01/16(水) 14:54:03 ID:7pbGQp1K
>>795 すいません。レスの番号をまちがえました…。
2ちゃんねる初心者なもので…。
797 :
NAME IS NULL :2008/01/16(水) 14:54:59 ID:7pbGQp1K
>>794 また間違えてしまいました…。スミマセン。
>>789 OracleをXP Homeに入れるのは
自己責任で対処できるだけの
自信がなければダメだよ。
素直にXP Proに汁。
俺は開発デモ機にノートPCのXP Homeに入れたことがあったけど、 特に問題は起きなかったよ。 ただし、管理者権限が細かく設定できないからお勧めできないし、 保障対象外なので素直にやめておいた方が良いよ。
>>799 俺は全く問題ないケースと、
DBCA/NETCAが起動しないケースがあったな。
801 :
NAME IS NULL :2008/01/17(木) 12:19:08 ID:8keqyfsn
791です。 皆様ご意見ありがとうございました。 社長と相談し、最終的にOSをProにアップグレードすることになりました。 OracleのサポートもOSがHomeだとサポート対象外ということもありますし…。 先ほど、開発端末2台分のWindowsXP Professional アップグレード版を2つ購入してきました。 午後からはOracleを買いに行きます。 色々とありがとうございました。
今Oracleって小売店で買えるの? 確かに昔ぷらっとほーむで見たことはあるが…
>>801 Oracleダイレクトに電話してライセンスだけ買えば?
本体はU.S OTNからででも落とせばいいし?
804 :
NAME IS NULL :2008/01/18(金) 12:20:33 ID:Uu/5PqWD
791です。 Oracleは会社の都合で今週中に必要だったので、 代理店に直接受け取りにいきました。 箱を空けたらCDやらDVDやらが30枚くらい入っていてびっくりしました。 (なのに説明書はペラペラです…) とりあえずvistaの端末にデータベースとクライアントをインストールしました。
今はマニュアルも全てデータだからね 昔はちゃんとした本で、その重さときたら・・・
まあ重さもそうだが値段もすごかったな。 たかがダンボール数箱分のくせに車買えるくらいした。
807 :
NAME IS NULL :2008/01/18(金) 20:26:51 ID:BBt2DSbf
CentOS5 + Oracle10g の環境です。 Oracle サーバ (=NFS クライアント) 上の oradata 配下を NFS に配置した スタイルで運用しようと試行錯誤しているのですが、ORA-00205 が発生するため データベースをマウントした状態でインスタンスを起動できません。 nomount なら起動できます。 アラート ログに下記のエラーメッセージが出力されます。 ORA-00202: Message 202 not found; No message file for product=RDBMS, facility=ORA; arguments: [/opt/oracle/product/10.2.0/db_1/oradata/tstdb1/control01.ctl] ORA-27086: Message 27086 not found; No message file for product=RDBMS, facility=ORA Linux Error: 37: No locks available Additional information: 10 Fri Jan 18 19:40:01 2008 ORA-205 signalled during: ALTER DATABASE MOUNT... NFS クライアントのマウント オプションは下記の通りです。 hard,initr,rsize=16384,wsize=16384 調べると、ファイルのロック制御に失敗しているようなのですが、なかなか有効な情報が 見つからず困っています。 oradata 配下を NFS に配置することはできないのでしょうか。
808 :
807 :2008/01/18(金) 20:34:28 ID:???
x : hard,initr o : hard,intr
>>807 データベースファイルをNFSで運用するのは非推奨だし、
たしか動作保証外になってた希ガス。
> oradata 配下を NFS に配置することはできないのでしょうか。 はい。できません。 どうしても共有したければ OCFS2 を構成してください。
811 :
NAME IS NULL :2008/01/18(金) 21:32:15 ID:SGztWTji
ならないよw DBに関する重要特許は独占しているし、安定性もセキュリティも桁違い。
MySQL監査機能がないから 最近の案件だと製品選定で真っ先に落ちる
NFS上にもデータベースを配置できるぞ。 NFSサーバーを選ぶけどな。 NFSでlockを獲得できないといわれるときは、一旦NFSサーバー側のファイルロックをクリアしてみる。 その後、NFSクライアントを再マウント。
815 :
NAME IS NULL :2008/01/19(土) 06:55:21 ID:Nx/YSWVp
私が小学生の頃、
日本中でノストラダムスの予言が大流行していた。
「1999年の7月に人類は滅亡する!」
という例のお騒がせ終末予言である。
大人になって社会に出て働きだして、
あくせくと忙しく日々を過ごしながら、
1999年は、
ありふれた日常の中であっさりと過ぎていった。
人類は滅ばなかった。
これからここで、
1999年に起こるかもしれなかった人類の壊滅的破局を、
誰にも知られずにこっそりと回避させた人たちがいた...
という設定で、
荒唐無稽なストーリーを描いてみたい。
無論、100%完全なフィクションである。
http://www5.diary.ne.jp/logdisp.cgi?user=532063&log=200705
>>807 NFSはちゃんとrwでマウントしてんだよねぇ?
>>807 >>814 と同じだが
metalink.oracle.comのnote145194.1に
netappでの直し方が書いてある。
閲覧には保守契約が必要
818 :
807 :2008/01/21(月) 10:03:39 ID:???
レスくださったかた、ありがとうございます。 普通に CentOS5 の NFS を使っただけでは、うまくいかないことはなんとなくわかりました。 ご紹介いただいた、 metalink.oracle.com を参照の上、あらためて結果を報告します。
ここでいいのかな BEAって何してる会社? アプリケーションサーバってなに?
WebLogic
>819 820がほぼ全て語ってる気もするが どっちかというとWebProg板の話ですな
ものすごく初期的な質問で申し訳ないのですが、 「Oracle9i Enterprise Edition」でエクスポートしたダンプを、 「Oracle9i Standard Edition」でインポートできるもんでしょうか? ダンプファイルの内容自体は、普通のテーブルとインデックスしかありません。 また、パッチのバージョン(9.2.0.5)は同じです。 よろしくお願いします。
WLもオラクルで面倒見てくれるようになるのだろうか。 OEL移行ついでに、アプリケーションサーバもWLからOASにしようとしてたところだった。 MS/Sun/Oracleって3大巨頭になりそうだな。
テーブルに登録されているデータ容量が知りたいのですが、 下記のSQLで問題ないでしょうか? SELECT SEGMENT_NAME, SUM(BYTES) FROM USER_SEGMENTS WHERE SEGMENT_NAME = 'テーブル名' GROUP BY SEGMENT_NAME
テーブルによって確保されているDISK容量ならそれであってる。 ただし 100万件INSERTして100万件DELETEした場合だと 実際は0件なのに100万件だったときの容量がでる。
10gとか9i,8iとかのiとかgとかって何の意味なんだろ? 11は11gだったよね. 7以前は知らん.
i=Internet g=Grid だったような気が。
8と8iは別物と言っていいくらい違う
そしてなぜか7.3と8.0.xが似てたな。
831 :
807 :2008/01/27(日) 22:51:14 ID:???
調べたところ、807 で投稿した事象は Linux の NFS Client のバグだそうで、nolock のオプションをマウント時に つけることで事象を回避できました。
832 :
NAME IS NULL :2008/02/05(火) 02:49:23 ID:vkOlCSGD
40,000,000件を更新する処理があるのですが、このとき必要な undoセグメントの大きさと作成されるアーカイブログの量を 見積もる方法を教えてください。 処理は1トランザクションを考えていますが、 場合によっては途中でコミットすることも考えています。
>>832 んなもん更新するブロックのサイズによって変わるし、undo_retentionにだって
思い切り影響を受ける。
テスト環境で1000件ぐらい更新して、それで正確に見積もるのが吉。
>>832 アーカイブログは更新頻度とオンラインバックアップ間隔に依存する。
オフラインバックアップ運用なら、なしでもよい。
Oracleの入ったLinuxマシンにWinマシンからアクセスしたくて OSqlEditをインストールしたんだけど OCIライブラリが初期化されていません とかいわれて接続できません OCIライブラリをインストールするには どこからダウンロードしたらよいでしょうか
>>835 Oracle Clientインストールしたら入るべ
>>832 データ量を減らして更新して
v$undostatかv$sysstatあたりを見れば
見積もれるんじゃねーか?
>>836 ありがとう!
ところで、sqlplusから、テーブル名ってどうやって変更するの?
rename a to b;
日付型での検索って SELECT * FROM hoge WHERE d>TO_DATE('2008-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS'); みたいにTO_DATE使わないとできない と思ってたけど SELECT * FROM hoge WHERE d>'2008-01-01 00:00:00'; みたいに適当に書いても検索出来るときがあるよね? これって日付のフォーマットを定義すれば出来る話?
>>840 NLS_DATE_FORMAT とかかなー
>>840 Oracle8iでも無い限り暗黙変換などに期待せずに素直に日時リテラル使え
各テーブルのcreate文を出力するsqlを教えていただけないでしょうか。 オブジェクトブラウザが使えない環境なので・・・ できれば関数とプロシージャの取り方も教えていただければ幸いです。
日本語か英語で聞いたほうがよい
>>844 dbms_metadata.get_ddl
alter table 移動したいテーブル名 move tablespace 移動したい領域名 でテーブルスペースを移動するとき、 移動中に移動対象テーブルのアクセスがあった場合は、 SQLエラーになるのでしょうか? それとも移動完了までのロックになるのでしょうか?
変更は移動する前の表領域に対して行われるだけで、 移動先が追いつくまでは、内部的に切り替わらない。
>>849 もちろん試したのですが問題なかったのですが、
タイミングの問題でたまたま成功したように見えたってことを心配しました。
何よりも仕様を知りたいと思いまして。
>>850 つまりは、移動SQLの処理が終了しない間に更新・参照がかかっても
ロックされることなく正常に処理されるということですよね?
ありがとうございます。
> LOCKED_MODE列を見るとmoveコマンド実行時は'6'=排他ロックモードで実行されています
>>844 OEMでDDLの表示すればOBは不要だろ
>>854 オラクルはOEMを相当押しているみたいだけど
現場にそんなに導入されてるか?
>>855 うちは結構使っているなぁ。
現場と言ってもヨーロッパとアメリカだけどさ。
多くの現場がOEM>>>>OB>SQL Developerって感じじゃないか
OEMは重過ぎるのが難点かな。 複数台のサーバーをOEM専用サーバーでまとめて管理とかならいいけど、 サーバー1〜2台程度の構成でOEMまで導入したらリソース食いすぎできつい。
exp system/manager tables=(A) file=before.dmp Aテーブル変更 exp system/manager tables=(A) file=after.dmp before.dmpとafter.dmpから差分を出すツールや方法ありましたら教えてください!
diff before.dmp after.dmp
>>859 一回Importしてみるしかないじゃない?
表名の重複を避けるために別々のスキーマにImportしてminusでも使えば
差分は一発で分かるっしょ。
>860 俺のコーヒー返せwww
そもそもDB鯖は専用にすべき。 管理ソフトなんて入れちゃ駄目だよ。
864 :
NAME IS NULL :2008/02/25(月) 02:05:13 ID:6ycVpU1X
SQL*PlusでSQL文を実行するときに、指定時間経過後にエラーが返るように したいのですが、どうしたらよいでしょうか?Oracle9i(R2) (Java の Statement#setQueryTimeout のような感じ)。
質問があります。 いまさらですがOAS4.0.8を乗せ換えようとしてます。 新しい環境だとカートリッジに登録したJSERVLETアプリケーションが 起動しません。何か特別な設定があるのでしょうか? 手順書のPDF通りにしているのですが・・・。 WWWリスナー経由でほかのPCからだとJAVAアプリケーションが実行できるのが そのPCだと起動しないのが原因なんでしょうか?
867 :
864 :2008/03/02(日) 04:55:41 ID:???
一応解決しました。 プロファイルの CPU_PER_CALL を使用しました。
868 :
NAME IS NULL :2008/03/03(月) 22:33:12 ID:5tZy63eQ
項目A(3バイト)、項目B(6バイト) (更新前) AAA,BBBCCC AAA,BBXCCC AAA,BBPCCC (更新後) ← このようにしたいです。 AAA,BBZCCC AAA,BBZCCC AAA,BBZCCC 目的は、項目Bの頭3バイトだけを”BB*”で条件に指定して、 項目Bの頭3バイトを全て”BBZ”に更新したい場合どうすればよいのでしょうか? 項目Bの後3バイトの”CCC”はそのまま残さなくてはいけないため、 どのようなSQL文にすれば良いのかわかりません。 どうしても後3バイトを生かしたままの更新なので。。。。困ってしまします。 お知恵をお貸しください。
UPDATE テーブル SET B='BBZ'||SUBSTRB(B,4,3) WHERE B LIKE 'BB_CCC'; じゃ、だめ?
870 :
864 :2008/03/18(火) 18:40:32 ID:???
872 :
NAME IS NULL :2008/04/09(水) 20:26:47 ID:CidHgDxH
SQLの取得方法で質問です。 以下のデータが存在するとします。 ID | KINGAKU ------------- 0001 | 1000 0002 | 2000 0003 | -1000 0004 | 3000 このときIDの0001と0003で0(ゼロ)になるため抽出結果から省きたいのです。 0001と0003は打ち消しになるので抽出する必要はない、そういうことです。 要は一度その金額で購入したのですが、その後検査でNGになったので返却する のでプラマイゼロになるので、その分の表示の必要はないとのことです。 SQLの抽出結果は ID | KINGAKU ------------- 0002 | 2000 0004 | 3000 となるようにしたいのですが、何か良いSQL文を生成出来ないでしょうか?
ID | KINGAKU ------------- 0001 | 1000 0002 | 2000 0003 | -1000 0004 | 3000 0005 | 1000 0006 | -1000 こんなデータなら1-3と5-6で相殺するんだろうから、普通のSQLじゃむりじゃない? PL/SQLでテンポラリテーブルに吐き出したものを参照するか、 プログラム側で出すほうがいいと思うけど。
ここはマルチポストのすくつですね。
11gをCentrinoDuoのノートPCに入れたら重すぎて 速攻アンインストールしました
初心者です。 仕事で、Oracleを使います。 Oracleの10gをPCサーバにインストールして、クライアントを別のPCに インストールしています。 Pro*C/C++を使って、DBを操作したいのですが、 C/C++の開発環境がサポートしていないためか うまくいきません。 開発環境は、Visual Studio C++ 2008 です。 2008は新しいので、無理なのでしょうか? VC++2005や2003だとよろしいですか? 教えてください。
>>876 何の初心者?
OracleなのかWindowsなのかC/C++なのかPro*C/C++なのかSQLなのか
開発そのものなのか質問の仕方なのか問題の把握の仕方なのか
人間としてなのか。
ほんとうっとうしいな。
Ora8iのデータベース(DBFとREDO)をiRAMに入れたら impにかかる時間が1時間から4分になった
◆6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
http://system-trading.jp/news/index.php?cID=3 5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
デモトレードの優勝者には賞金三百万円がプレゼントされます。
▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
http://www.fx-gp.com/about/ ▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
◆6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
http://system-trading.jp/news/index.php?cID=3 5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
デモトレードの優勝者には賞金三百万円がプレゼントされます。
▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
http://www.fx-gp.com/about/ ▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
sage
オラクルにオンメモリのデータベース製品あったと思うけどね。 今時は、RAMディスク作ってデータベースファイル置くのが流行?
884 :
NAME IS NULL :2008/06/07(土) 06:00:45 ID:1HhbjOFd
>>876 >2008は新しいので、無理なのでしょうか?
黄身には無理なのでは。
ProC/C++は、プリコンパイルするだけ。
プリコンパイルできないのか、コンパイルエラーになるのかだけでも
全く違う。
AというSIDにtestというユーザーがあり、テーブルにデータが入っています。 testには何も手を加えず、testのデータが入っていないユーザーダンプを取って、お客に渡したいと考えています。 (testに重要情報があり、そのままダンプできないので) しかもAのDBは稼動中なので、データを消すこともできません。 思いついた方法が、testをユーザーダンプして、Aにtest1ユーザを作りデータをインポート、重要データ削除、test1のダンプを取得で 行けるかなと思っています。このやり方で問題ないでしょうか?
>>885 exp で rows=n すればいいのではないかな。
>>886 ありがとうございます。助かりました。
GRANTS、INDEXES、TRIGGERSは選択できるようですが、VIEW・ファンクション・プロシージャのみをエクスポートすることはできるでしょうか?
>>887 それだけってのは無理だから、
データディクショナリから
DDL取得すれば良いんじゃね?
でなきゃObject Browserでも使えば?
テキストファイルにスクリプト出力できるよ。
>>883 SSDをFC接続?確かにとても高速になりそうだけど、凄い値段になりそうだ。
玉取り替えるだけでいくら必要になるのやら。
HP-UXですが、sqlplus xxx/xxx@xxx @hoge で hogeの文字列制限とかってありますか? 発行するSQLは下記の通りです。 update xx set xx = '1' where master_id in ('1234567889', .かなり長い). ちなみに、inの中で使用できる文字制限なんてないですよね・・・
>>890 SQL*Plusから発行できるSQLの長さには制限があったはずだが。
sqlplusだけじゃなく、シェルの制限も受けるんだっけ?
>>888 @hogeに1行で書く場合には最大で2499文字まで。
897 :
NAME IS NULL :2008/10/07(火) 20:48:10 ID:IaR6ySNW
なんかOracle 質問総合スレ2って落ちた? まあ、こっち使えばいいか。
898 :
NAME IS NULL :2008/10/07(火) 21:58:59 ID:y+gMrh6e
899 :
NAME IS NULL :2008/10/07(火) 22:03:33 ID:IaR6ySNW
900 :
NAME IS NULL :2008/10/22(水) 20:09:19 ID:DPuOfXKG
Oracle EBSの運用することになったのですが、良い本ありませんか? Oracle E‐Business Suite入門 運用管理編ってのが欲しかった のですが、どこも入荷できないよう?です。
902 :
NAME IS NULL :2008/10/24(金) 22:56:34 ID:6cTkJBec
>>901 定価\3,150が \16,800とはとても買えません
>>902 ほえ〜、調べてみたら絶版になってんだなぁ・・・。
昔、日本ボラクルにいた時にタダで貰ったやつが俺の机の
上に転がってんだけどなぁw
ちなみに内容的には本当に一般的なものばかり。
どれくらいのサポートをするのか分からないけど、いわゆる
欧米で言われるApps DBAというレベルのサポート行うには、
これでは不十分というのが正直な感想。
904 :
NAME IS NULL :2008/10/26(日) 09:30:23 ID:kLMG5Psu
インスタンスを起動するコマンドとDBを起動するコマンドは違うのでしょうか? また、1つのサーバーに1つのDBと1つのインスタンスがある場合、 インスタンスを1つ追加するにはどうしたらいいでしょうか? 初心者で済みません。
>>904 シングルインスタンス(つまりRACでは無い)の場合はインスタンス≒DBと
思って問題無い。
つまりsqlplus使って、startupでインスタンス(DB)は起動する。
1つのサーバーに1つのDBと1つのインスタンスがある場合、そのDBに
インスタンスを追加してRAC化する(いわゆる1ノードRAC)のはサポート外。
技術的には不可能では無いけどね。
>>905 >DBにインスタンスを追加して
変な言い方をするなw
>>904 >インスタンスを起動するコマンドとDBを起動するコマンドは違うのでしょうか?
厳密に言えば違うが、それぞれが独立してるわけではなく、ステップが違うだけ。
つまり、漠然と「DBを起動する」といっても、「インスタンスを起動し、DBをマウント&オープンする」ということを意味している。
907 :
NAME IS NULL :2008/10/26(日) 18:09:54 ID:uV6FBV4T
4GB積みの32ビットWindowsにOracle10g入れるとき、 Oracleにメモリどのくらい割り当てる? (ひとつのインスタンスのみのDBサーバー用途)
とれるだけw といいたいけど、32bitOracleって2GBまでって制限なかったっけ?
>>909 ある。
Oracleというより32bit Windowsの仕様で、
1つのユーザープロセスは2GBまでしかメモリを使えない。
>>908 つ〜ことで、2GBが上限って事で。
残りは3Gオプション付きで起動して、
Windowsカーネルをメモリに固定するとかでヨロ。
>>910 2GBってのはSGAのみ?SGA+PGA?
いや、oracle.exeが使うメモリもあるから…可能上限ってのはどのくらいなんだろう?
コミコミプランで
つーか、普通は流れるSQLや、データ量見てからSGAのチューニングするべ? 多めに見積もってエイヤッでやってもいいけど、32bitという環境を考えたら、 そんなに余裕は無いべよ?
PHPなどからSELECT文を発行して その出力を連想配列でもらうときに ハッシュが大文字のカラム名になるけど これを小文字にする方法はありますか?
とりあえずPHPはあるよ。
917 :
915 :2008/12/02(火) 22:09:32 ID:???
>>916 ありがとう!おかげで助かりました。
こういうのってあるかないかが分かるだけでも大助かりだよね
>>914 DBにsysmanユーザーでログインして以下のパッケージを実行。
sql*plus> execute MGMT_PAF_UTL.STOP_DAEMON
sql*plus> execute MGMT_PAF_UTL.START_DAEMON
920 :
NAME IS NULL :2008/12/03(水) 10:42:51 ID:wHacdh1J
VARCHAR2のカラムをNUMBERに変更したいんだけど ALTER TABLE hoge MODIFY (unko NUMBER) としても 中身を一度空にしなさい って怒られます。 (中身は全て数値として変換可能な文字列になっています) あまり中身を操作したくないのですが、なにかうまい方法ありますか?
insert selectで別表にしたら。 件数・用途によるけど うちはだいたいこれ。
>>921 ありがとう
CSVで吐いてCSVで突っ込んじゃった
ALTER TABLE hoge ADD COLUMN(unko NUMBER); UPDATE hoge SET unko=TO_NUMBER(gero); COMMIT; ALTER TABLE hoge DROP COLUMN gero; かなあ・・・ 今ORACLE触れる状況じゃないから試してないけど。
10.0.3 でConnectByしたらSelectするたびに件数が変わる現象に遭遇した おもしろすぎてニヤニヤしながら調べてたけど 階層構造を構成するテーブルとその他テーブルを結合して、それに検索条件をつけてたのが原因ぽく まず結合&検索条件で絞ってサブクエリ使ってからConnectByしたら件数固定された こんな現象にあった人いる?
>>926 あるよ。
たぶんバグナンバーがあると思う。
人間がミスをするように、 PGもバグ入りアプリケーションを作る物だしな。
TARとか見ていると面白いぜ。 たまに開発者が「このバグを直すのは現行バージョンでは不可能です」とかって 書いていたりするからなw
メモリの状態を理解できていないDBエンジニアは確かに多いなぁ。vmstatすら知らない奴とか
そのへんは動作環境依存だしなあ。 窓とマクと犬とソラリスとHP-UXと全部把握できてるエンジニア自体希少では? 一方PGは開発環境依存だから、窓のVS環境とか、UNIX系のエクリプス環境とか、わりと動作環境のOSとは無関係だし。 同じように評価しようと言うのが無茶。
そもそも非公開の情報が多すぎる サポート契約してるのにメモリの状態を完全に把握できない どの程度のメモリを確保するのか計算式すら提示できないって いったい何を守ってるの?
>>933 パッチ作ったりする資金を守ってます。
つかメモリの状態ってOSから見るんと違うん?
こういう事したいんだけどメモリ消費どれぐらい?って聞いてまともな返事が返ってこないんだよ 話題ズレるけど、障害時にリアルタイムで当該サーバのメモリ状況を採取できるチャンスなんて皆無じゃね? パフォーマンスモニタなんて常時回すもんじゃないし、それだけじゃ足りないし
>>935 それってstatspackでは事足りないものかな?
レベルによってかなり細かな情報まで見れたような
障害が発生してDBが原因だったら、統計情報のスナップショットさえとってあれば
統計でディスクアクセスが多ければメモリ領域が足りないのか、実行計画がひどいのかとか
切り分けは可能だと思うんだけども
よく使うテーブルがどれで、どの辺がキャッシュされてほしいかでメモリのサイズもきまらないかなー
そーいえば11gからはselectにヒントで強制的にキャッシュさせることが可能だったね
DBAでは無いので間違ってるかもしれんので突っ込みよろしくたのみます
937 :
NAME IS NULL :2009/01/31(土) 12:57:16 ID:H8Yszxnh
ところでOracle XEのclientも/XEClient/NETWORK/ADMIN フォルダ作ってそこにtnsnames.oraファイル置けばちゃんと 使えるのってみんな知ってた?
使えなけりゃクライアントの意味が無い
>>935 5分くらい考えて「こういう事」のイメージが出ない。
SGA/PGA 以外はほとんど固定でしょ。
Win なら 1専用サーバで +1MB。(EXPIRE_TIME入れると倍)
中でどんなメモリ確保されてるのか計算式を求める必要性が
理解できないんだが。
障害時だけじゃ広範囲すぎるけど、パフォーマンス障害であれ
ばメモリ情報が取れないとか話にならないし。
こういう事なんて適当なイメージでまともじゃない質問されても困るだろwww 単に質問の仕方が悪いだけじゃないの? まともな答えが返って来る見込みのある質問をするのもコミュニケーションのテクの一つ。 モニタしてる事自体が影響を与えてしまうけど、モニタしてる事を前提に設計すればいい話ではある。 どうせOSやネットやDBとかで死活監視して、本来の処理には無駄な負荷与えまくってる訳だし。
941 :
NAME IS NULL :2009/02/01(日) 08:59:18 ID:OWf5p2Ai
とあるDBチューニング専門会社のDBエンジニアから 聞いたのですが、 顧客のOracleに故意に細工を施しておいて、 後で「パフォーマンスが遅いですね。チューニングの必要があります」 と言って、仕事にすると聞きました。 こんなことって可能なのですか?
ソニータイマーなどない
でもいつもみんなの心に
わざわざ細工しなくても普通にメンテしてないと遅く成って行ってるでしょ。 あと出来がよくて利用が増えて来てもパフォーマンスは落ちる物だし。 いまはハード安いから、チューニング費用出すよりも最新のハードに載せ変えたほうが安いことも多い。 まともに管理してるなら、細工したらログに残りそうだがwww
>>941 そういうことは可能ではあるけれども
DBだけのチューニングごときでは儲からないから
わざわざやらない。
ちなみに、ネタとしてはINDEXのタイプを変えるとかAUDITを有効にしておくとか
いろいろやりようはある。
日本オラクルのサポートがあるのに、どうしてチューニングの会社が必要なの?
>>946 サポートじゃチューニングなんてしてくれないぞ
コンサルはしてくれるから、ヒントはくれると思うよ。 一番高いメニューでかなり請求されるかもだが。
Oracleサポートに常駐してる人が居たな あんなところまで外注エンジニアがやってるんだな
>>933 お前みたいな理屈っぽいのはOracle向かないよ。
すべてを捨てて大らかな気持ちを持つことが
Oracleを扱うエンジニアとしての第一歩さ。
動きがおかしいところがあってOracleサポート契約してたので問い合わせたら 不具合だが隠しパラメータで対応しろと言われたんだが そんなんで直るなら公開orパッチで対応してほしいと思うのだが。。。。 もしかしてDBが完璧過ぎると会社が儲からないのか?
よくあるよくある。 ウチもマニュアルと実際の動作に食い違いがあるって、 サポートに問い合わせたら、マニュアルの誤記だってあっさり言いやがった。 マニュアルの意味ねぇっぺよ。
>>935 逆に聞くけど、こういうことしたい、こういうアプリ乗せたいって質問して、
じゃあこれぐらいメモリ積んでください。なんて答えられるデータベースあるの?
ハードもセットのDB2なら答えてくれるかな?
955 :
952 :2009/02/06(金) 00:25:24 ID:???
>>953 やっぱあるのかー
マニュアルの誤記とかすぐ直せるんだから直せよと。。。
Oracleに限らんけどなw
元々サポート前提のビジネスモデル。 買い切りの客は相手にしてない。
Oracleのスタンスは製品の品質は80%で十分。 残りの20%は客がバグ出し及びブラッシュアップしてくれるというものです。 ラリーエリソンがそう言い切ったしw
>958 ラリーそんなこと言ってた?
テーブルの型を指定するときは数値型のときに 有効桁数を指定できるけど、演算結果には どうやって有効桁数を指定したらいいのかな SELECT AVG(hoge) AS a FROM unko GROUP BY chinko; たとえばこのとき、有効桁数10桁で a を出力したいんだけど やりかたがわからない。
>>960 SQL*Plus なら
SQL> col a for 9999999999
とかだったかな。
環境に依存させない場合は to_char する。
>>961 TO_CHARだと、小数点以下いくつを切り捨て、とかしか出来ない。
整数部の桁数を調べてそれを有効桁数から引いた分を指定する
のも考えたけど、そんなクエリどうやって書くのか・・・対数つかうの?
まー、よく調べもしないで、、、。
964 :
NAME IS NULL :2009/02/17(火) 08:42:03 ID:ONMV5oZt
質問させて頂きたく。 Aデータファイル:auto extend(on)自動拡張で拡張中 Bデータファイル:auto extend(off)作りたてで空きいっぱい A,Bが同じ表領域で新しいextendが作られる場合は どちらに作られるのでしょうか? 素人な質問で恐縮ですが、 何卒。。。
965 :
960 :2009/02/17(火) 14:47:58 ID:???
とりあえず、Oracle側では出来ないことがわかったので スクリプト側で対処することにしました。 ありがとうございました。
SELECT FOR UPDATE NOWAITを発行して20分くらい反応が無いのですが、コレは単純に検索に時間がかかっているという判断でいいのでしょうか? 約1億レコードのなかから90レコード程度だヒットする条件なのですが、時間がかかるかかる。 NOWAITをつけたのでロックされているようなら直ぐに反応があると思うのですが…
FOR UPDATE無しなら?
>>962 961 だけど、意図してる有効桁数って少数点以下も含んで
かつ整数部の桁数で少数部の桁数が変化するの?
有効桁数5桁として "0.1234" や "5678.9" にもなるし、
"0.0012345" もアリってこと?
むしろ、スクリプトでも何でも、どうやって対処したのか知りたい
んだけど。
整数部が上限3桁として、小数部も含めて5桁なら
substr( to_char( col, '999.99990' ), 1, 6)
とかかな。(必ず切り捨てにはなるけど)
あっ、trim も入れないと駄目だなきっと。
>>968 そうです。 123456で有効桁数5桁なら123450です。
1.2345E+5 にしないのは顧客のうんこ仕様ですが。
>>970 それを有効桁数と言うのかは置いておいて、理解できない要求仕様だw
Oracleだけで実現するなら、FUNCTION作って、case式で書式返すと
かですかね。
>>967 無しでも応答なしは一緒ですね…
ctrlCで中断できなくなり、コンソールを落としたらトランザクションが残ってしまいそうでそれもできず…
どうしたらいいのでしょう?
>>972 実行計画見てちゃんと有効な索引が使用されているか確認。
>>970 ならテーブルの定義でだってできないじゃん、そんなの。
有効桁数をAとしたとき、
floor(x/10^(floor(log10(x))+1-A))*10^(floor(log10(x))+1-A)
たぶんこれでできると思うけど、Oracleにはlogがないんだよな。
まー、よく調べもしないで。
>お前みたいな理屈っぽいのはOracle向かないよ。 >すべてを捨てて大らかな気持ちを持つことが >Oracleを扱うエンジニアとしての第一歩さ。 こんにちは。APEX調べろと言われて調べ始めたのですが、 『ウッハー、読みにくいマニュアルっ。氏ねよ、ハゲッ!』とか 八つ当たりにきたのですが、心が満たされた思いがしました。 がんがります。
1億レコードの中から90レコードを更新したい という状況で俺なら a)自己責任で検証できる環境にインポートする。 b)想定時間内に応答がない時点で、SHUTDOWN ABORTしてしまう。 c)SELECT ROWID FROM TABLE WHERE〜として何秒で90行返却されるか確定する。 d)cを情報源としてROWIDを用いたUPDATE文を90個作成して 90回実行した時に何秒かかるか確定する。 これより速い処理は、なかなか難しいので妥協点を知りたい。 e)もし、cが途中で止まるならSELECTが悪い。 索引が必要か、サーバの性能不足や、なんらかのトラブルを抱えている。 EXPLAIN PLANしてHASH JOINが利用されているなら、/*+ RULE */の ヒント文を入れてHASH JOIN以外を利用するようにしてみる。 f)もし、dが途中で止まるなら排他がかかっている。 g)1行1行の更新に時間がかかっているなら、 REDOログのファイルスタンプ、サイズと、 UNDOTBSの空き容量を調べて、 サイズが不足しているようならaに戻って環境を整備する。
まぁ、c)が帰ってこないって書いてあるけどな。
たいがいの問題は、お金で速い鯖買えば解決できる。
5〜6時間かかるSQLを速くしてくれ、と頼まれた。 SQLは単なる検索で、1000万件クラスの表を5つ〜6つくらい結合して、 SELECTしてくるだけの簡単な処理。 Xeon2.0Ghz x 2にメモリ2GBのOracle10gで決して遅くはないと思う。 メモリやらディスク構成も特に変なところは無さそう。 ついでに多重実行は無しで常に接続ユーザは1人。 索引張ることも検討してみたけど、必要な列には全て張ってあって、 実行計画見たら、ほぼ全件舐めるもんだから、FULLアクセス頻発。 渡されたSQLの実行コストを見てみたら、100,000オーバー。 但し、SQLの方は変えるつもりは無いとのこと。 これはDBサーバ側のチューニングで何とかなるもんなんかね。 上司は単純にサーバ新調で何とかしようと考えてるっぽいけど、 どう考えても劇的に速くなるわけ無さそうなんだけど。。。
ああ作成したプログラムの仕様で、一度に投げられるSQLは1つまでらしいんだ。 索引が有効に働く程度のサイズくらいに、 データを絞り込んでやったら?とか言ったら、 不機嫌そうに、「そんな機能は無いです」だと。
マテリアライズドビューは明日の提案・報告書に盛り込むつもりなんだけど、 こいつが作ったツールって、入力条件から動的にSQLを生成するツールなんですよね。 で、マテビュー使えないか、って以前に打診したら、 検索条件も結合条件も変わるから一概に使えるとは言えない、とか言ってた様な気が。 汎用的な検索ツールですからっ、とか言ってたけど、 どうせ現場で使うのってその中の数パターンなんだから、 典型的な奴で遅い奴だけでもマテビュー使えないか、とか考えてみます。
>>984 厳しいですね。
参考までに,検索結果は概ね何件くらいですか?
query rewrite すれば。
>>980 SQLを変えるつもりが無い時点で、
取りうる方策は、かなり限定されてしまうね。
雑談。
過去経験では、コストベースオプティマイザで
HASH JOINが選択された場合に
想定外に性能が悪い場合があって
調べてみたら一時表領域を浪費しまくってた。
こりゃORACLEのバグくさい、と思って
サポートセンターに行ってPSRをダウンロードして
Release Noteに書いてあるBug Fixを調べたら、
HASH JOINには、結構そんなバグがある。
SQLを実行した時に、なぜか遅くて
一時表領域をバカ食いしてる時には、思い出して。
その時、俺は忙しくてPSR適用とか無理だったんで
/*+RULE*/をSQLに書いて逃げたよ。10gR2での話。
ルールベースだと、Nested Loops Join、Sort Merge Join
のどちらかしか選択されないんだ。
>>980 実行計画が最適なのかどうか、ボトルネックがディスクなのかCPUなのか、
といった肝心なところを見ていないような。
検索結果は一番大きいテーブルで1000万件、 それに紐付く子テーブルが300万件くらいづつですね。 実行計画は調べてて、表結合した結果をユニオン/インターセクトしたりしたところで、 ディスクソートが発生して遅くなってて、CPUはあんま使ってないことから、 検索条件をもっと絞り込めば、多分大丈夫なんだけど、 実行するSQLが不定型なんで、個別にSQLの最適化するのが嫌、 とか言って、突っぱねられてる状態です。 ついでに運用環境だから、試しに索引張ってみるとかはNGって上司に念押しされてて、 確証のある方法しかDBへの変更は入れられません。 query rewriteとruleヒントは一度試してみます。 まぁ多分、最悪夜間にSQLを流して帰る運用になりそうなふいんきですが。。。
雑談。
Core 2 Quad搭載のノートPCを買ったんです。25万円也。
会社にある開発用のサーバ(
>>980 と同等のスペック)は
秒間に70回のOLTP的なトランザクション処理を
実行出来て、まあまあ速いと思っていたけど、
新しいノートPCは、秒間に220回もこなしやがります。
ちなみに10gR2です。ライセンスはトライアルを使用。
ミニタワーで組めば、6万円程度だと思います。
そのミニタワーで運用できるか?と言えば、不可でしょうけど、
3倍速くなるのがハッキリしてるのなら
200万円のサーバでも、安い!と誰でも判断すると思います。
まあ、そんなこんなで、私は半年に1台ずつPCを
買い換えてるんです。同僚からは、変人と思われてます。
まぁハード買っても安いから良いんだけど、 ハードの増強効果よりもSQL/アプリのチューニングの方が、 効果大だと思うんだけどなぁ。 最近だと人件費の方が高く付くのかねぇ。 まぁ980の事例がどうなるかは判らんけど。
DBを全部メモリに載せちゃえばって感じだけどな。 まあ消えるから、頻繁なバックアップ必須だけど。
メモリを16GBとか搭載したら、そう思うよね。 で、調べてみた。 Oracle TimesTen In-Memory Database 4,500,000円 (1プロセッサ当たり) 高い。高すぐる。 Enterprise Edition前提だし、 顧客を納得させる自信が無い。
ラムディスクならもっと安くできるだろ。サポート外だろうけど。
>>996 ttp://www.insight-tec.com/mailmagazine/ora3/vol355.html RAMDISKじゃなくてSSDの検証結果ですけど、
たぶんRAMDISKでも、更新系の処理の高速化の
効果しか見込めないような感じがします。
次の文を読んで、ORACLEもなかなかやるなあ、と思いました。
==============================================================
ソート処理の高速化を期待して一時表領域の SSD 化を検証してみまし
たが、ソートに関しては sort_area_size を限界まで(一時的に)拡張するこ
との方がより効果的でした。
さらに、Select の場合も、Oracleのキャッシュが効いていて SSD のメリッ
トを十分に感じることはできませんでした。
==============================================================
998 :
NAME IS NULL :2009/03/05(木) 23:37:46 ID:LtriKPII
998 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1000ついでに、980の事の顛末だけど、 結局アプリ側の改修は一切行わないってことではねつけられて、 サーバの増強ということになりました。 まぁ予算が出るんなら別に文句は言わないけどさ。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。