- Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathdocs.html
More file actions
Latest commit
1519 lines (1341 loc) · 91.2 KB
/
Copy pathdocs.html
File metadata and controls
1519 lines (1341 loc) · 91.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<htmllang="zh-CN">
<head>
<metacharset="UTF-8">
<script>try{varl=localStorage.getItem("lang");if(l)document.documentElement.lang=l==="en"?"en":"zh-CN"}catch(e){}try{vart=localStorage.getItem("theme")||"dark";document.documentElement.setAttribute("data-theme",t)}catch(e){document.documentElement.setAttribute("data-theme","dark")}</script>
<metaname="viewport" content="width=device-width, initial-scale=1.0">
<metaname="baidu-site-verification" content="codeva-5szOVhdF6k" />
<metaname="google-site-verification" content="FiO8gdu01Lz27qUPg4W2BfgG4VhD8ZWMXeiOa_ILa44" />
<metaname="msvalidate.01" content="F8A2AE4F6F5F9ED7F109EDFAA8DF12BA" />
<title>使用文档 - OracleShellInstall</title>
<metaname="description" content="OracleShellInstall 使用文档,包含快速入门、环境准备、单机/ASM/RAC 安装教程及完整参数参考。">
<metaproperty="og:title" content="使用文档 - OracleShellInstall">
<metaproperty="og:description" content="完整的 OracleShellInstall 使用文档,涵盖单机、ASM、RAC 安装教程及参数参考。">
<metaproperty="og:type" content="website">
<metaproperty="og:url" content="https://www.oracleshellinstall.com/docs.html">
<metaproperty="og:image" content="https://www.oracleshellinstall.com/img/og-cover.jpg">
<metaproperty="og:image:width" content="1200">
<metaproperty="og:image:height" content="630">
<metaname="twitter:card" content="summary_large_image">
<metaname="twitter:title" content="OracleShellInstall">
<metaname="twitter:description" content="OracleShellInstall 参数文档 - 全部安装参数详细说明">
<metaname="twitter:image" content="https://www.oracleshellinstall.com/img/og-cover.jpg">
<linkrel="author" href="https://www.oracleshellinstall.com/llms.txt" type="text/plain" title="LLM Context">
<linkrel="canonical" href="https://www.oracleshellinstall.com/docs.html">
<linkrel="alternate" hreflang="zh-CN" href="https://www.oracleshellinstall.com/docs.html">
<linkrel="alternate" hreflang="en" href="https://www.oracleshellinstall.com/docs.html">
<linkrel="alternate" hreflang="x-default" href="https://www.oracleshellinstall.com/docs.html">
<metaname="color-scheme" content="light dark">
<metaname="theme-color" content="#0a0a0e" media="(prefers-color-scheme: dark)">
<metaname="theme-color" content="#f5f5f7" media="(prefers-color-scheme: light)">
<linkrel="icon" href="favicon.svg" type="image/svg+xml">
<linkrel="icon" href="favicon-32x32.png" sizes="32x32" type="image/png">
<linkrel="apple-touch-icon" href="apple-touch-icon.png">
<linkrel="manifest" href="manifest.json?v=20260325a">
<linkrel="preconnect" href="https://fonts.googleapis.com">
<linkrel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<linkhref="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400&family=Noto+Sans+SC:wght@400;500;700;900&family=Orbitron:wght@700;900&display=swap" rel="stylesheet">
<linkrel="stylesheet" href="css/style.css?v=20260325a">
<style>
.doc-layout{display:grid;grid-template-columns:220px1fr;gap:44px;padding:56px080px;align-items:start}
.doc-sidebar{position:sticky;top:calc(var(--nav-h) +24px)}
.doc-sidebara{display:block;padding:8px14px;font-size:.82rem;color:var(--text-dim);border-left:2px solid transparent;
transition:all .2s;text-decoration:none}
.doc-sidebara:hover{color:var(--text);border-color:var(--border-light)}
.doc-sidebara:focus-visible{color:var(--red-glow);border-color:var(--red);outline:none}
.doc-sidebara.active{color:var(--red);border-color:var(--red);background:rgba(199,70,52,.04);font-weight:600}
.doc-sidebar .sb-title{font-size:.68rem;text-transform:uppercase;letter-spacing:2.5px;color:var(--text-muted);
font-weight:600;padding:014px;margin-bottom:10px;margin-top:20px}
.doc-sidebar .sb-title:first-child{margin-top:0}
.doc-contenth2{font-size:1.5rem;font-weight:900;color:var(--text);margin:52px018px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.doc-contenth2:first-child{margin-top:0}
.doc-contenth3{font-size:1.05rem;font-weight:700;color:var(--text);margin:28px012px}
.doc-contentp{font-size:.92rem;color:var(--text-dim);line-height:1.8;margin-bottom:14px}
.doc-contentul,.doc-contentol{margin:0016px20px;color:var(--text-dim);font-size:.9rem;line-height:1.9}
.doc-contentli{margin-bottom:4px}
.doc-contentcode{font-family:var(--mono);font-size:.82rem;background:var(--bg3);border:1px solid var(--border);
border-radius:4px;padding:2px7px;color:var(--accent2)}
.doc-contentpre{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
padding:18px20px;font-family:var(--mono);font-size:.85rem;line-height:1.8;color:var(--green);
overflow-x:auto;margin-bottom:18px}
.doc-contentpre .pf{color:var(--accent2)}
.doc-contentpre .pv{color:var(--blue)}
.doc-contentpre .pc{color:var(--text-muted);font-style:italic;opacity:.7}
.doc-contentpre .pw{color:#fff}
.doc-content .param-table{width:100%;border-collapse:collapse;margin:16px024px;font-size:.85rem}
.doc-content .param-tableth{text-align:left;padding:10px14px;background:var(--card);border:1px solid var(--border);
color:var(--text-dim);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:1px}
.doc-content .param-tabletd{padding:10px14px;border:1px solid var(--border);color:var(--text-dim);vertical-align:top}
.doc-content .param-tabletd:first-child{font-family:var(--mono);color:var(--accent2);white-space:nowrap;font-size:.82rem}
.doc-content .param-tabletbodytr:nth-child(odd) td{background:rgba(255,255,255,.015)}
[data-theme="light"] .doc-content .param-tabletbodytr:nth-child(odd) td{background:rgba(0,0,0,.02)}
.doc-content .param-tabletr:hovertd{background:rgba(199,70,52,.06)}
.doc-content .note{background:rgba(199,70,52,.05);border:1px solid var(--border-red);border-radius:var(--r);
padding:16px20px;margin:16px0;font-size:.85rem;color:var(--text-dim);line-height:1.7}
.doc-content .notestrong{color:var(--red-glow)}
.doc-content .tip{background:rgba(58,186,106,.05);border:1px solid rgba(58,186,106,.2);border-radius:var(--r);
padding:16px20px;margin:16px0;font-size:.85rem;color:var(--text-dim);line-height:1.7}
.doc-content .tipstrong{color:var(--green)}
.doc-content .warn{background:rgba(232,147,74,.05);border:1px solid rgba(232,147,74,.2);border-radius:var(--r);
padding:16px20px;margin:16px0;font-size:.85rem;color:var(--text-dim);line-height:1.7}
.doc-content .warnstrong{color:var(--accent2)}
.doc-content .info{background:rgba(74,143,232,.05);border:1px solid rgba(74,143,232,.2);border-radius:var(--r);
padding:16px20px;margin:16px0;font-size:.85rem;color:var(--text-dim);line-height:1.7}
.doc-content .infostrong{color:var(--blue)}
.doc-contenth4{font-size:.92rem;font-weight:600;color:var(--text);margin:20px08px}
.doc-content .media-table{width:100%;border-collapse:collapse;margin:16px024px;font-size:.82rem}
.doc-content .media-tableth{text-align:left;padding:10px14px;background:var(--card);border:1px solid var(--border);
color:var(--text-dim);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:1px}
.doc-content .media-tabletd{padding:10px14px;border:1px solid var(--border);color:var(--text-dim);vertical-align:top;font-size:.82rem}
.doc-content .media-tabletdcode{font-size:.78rem}
.doc-content .media-tabletbodytr:nth-child(odd) td{background:rgba(255,255,255,.015)}
[data-theme="light"] .doc-content .media-tabletbodytr:nth-child(odd) td{background:rgba(0,0,0,.02)}
.doc-content .media-tabletr:hovertd{background:rgba(199,70,52,.06)}
.param-filter{margin-bottom:8px}
.param-filterinput{width:100%;max-width:320px;padding:7px12px;font-size:.82rem;border:1px solid var(--border);
border-radius:var(--r-sm);background:var(--bg2);color:var(--text);outline:none;transition:border .2s;
font-family:var(--mono)}
.param-filterinput:focus{border-color:var(--red)}
.param-filterinput::placeholder{color:var(--text-muted);opacity:.5}
.doc-zh{display:block}.doc-en{display:none}
/* Search box */
.doc-search{position:relative;margin-bottom:12px}
.doc-searchinput{width:100%;padding:8px12px8px32px;font-size:.82rem;border:1px solid var(--border);
border-radius:var(--r);background:var(--bg2);color:var(--text);outline:none;transition:border .2s;
font-family:var(--body)}
.doc-searchinput:focus{border-color:var(--red)}
.doc-searchinput::placeholder{color:var(--text-muted);opacity:.6}
.doc-searchsvg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;
color:var(--text-muted);pointer-events:none}
.doc-search .search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:16px;height:16px;
cursor:pointer;color:var(--text-muted);opacity:0;transition:opacity .2s;background:none;border:none;padding:0;font-size:1rem;line-height:1}
.doc-search .search-clear.visible{opacity:.6}
.doc-search .search-clear:hover{opacity:1}
.doc-no-results{display:none;padding:16px14px;font-size:.82rem;color:var(--text-muted);font-style:italic}
/* Back to top */
.doc-btt{position:fixed;bottom:32px;right:32px;width:40px;height:40px;border-radius:50%;
background:var(--red);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;
justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;
transform:translateY(8px);box-shadow:04px12pxrgba(199,70,52,.35);z-index:90}
.doc-btt.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.doc-btt:hover{transform:translateY(-2px);box-shadow:06px16pxrgba(199,70,52,.45)}
.doc-bttsvg{width:18px;height:18px}
/* Section highlight animation */
.doc-contenth2.search-highlight{animation:highlight-pulse .8s ease}
@keyframes highlight-pulse{0%{background:rgba(199,70,52,.12);border-radius:4px}100%{background:transparent}}
/* Responsive table wrapper */
.doc-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:16px024px;
border-radius:var(--r);position:relative}
.doc-table-wraptable{margin:0}
.doc-quick-dl{margin-top:20px;padding:12px20px;background:var(--card);
border:1px solid var(--border);border-radius:var(--r);font-size:.86rem;color:var(--text-dim);text-align:center;box-shadow:var(--shadow-card)}
.doc-quick-dla{color:var(--red);font-weight:600;text-decoration:none}
.doc-quick-dla:hover{text-decoration:underline}
@media(max-width:768px){
.doc-layout{grid-template-columns:1fr;gap:12px;padding:50px080px}
.doc-sidebar{position:static;display:flex;flex-wrap:nowrap;gap:0;overflow-x:auto;
-webkit-overflow-scrolling:touch;border-bottom:1px solid var(--border);
padding-bottom:8px;margin:0-16px;padding-left:16px;padding-right:16px}
.doc-sidebara{border-left:none;border-bottom:2px solid transparent;padding:6px12px;
white-space:nowrap;flex-shrink:0;font-size:.78rem}
.doc-sidebara.active{border-bottom-color:var(--red)}
.doc-sidebar .sb-title{display:flex;align-items:center;font-size:.6rem;padding:6px8px;
margin:0;white-space:nowrap;flex-shrink:0;color:var(--text-muted);opacity:.7;
border-left:1px solid var(--border);margin-left:4px;letter-spacing:1px}
.doc-search{margin-bottom:0;flex-shrink:0;min-width:160px}
.doc-searchinput{padding:6px10px6px28px;font-size:.78rem}
.doc-searchsvg{width:12px;height:12px;left:8px}
.doc-btt{bottom:20px;right:20px;width:36px;height:36px}
.doc-content{overflow-x:hidden}
.doc-contenth2{font-size:1.15rem;margin:32px012px}
.doc-contenth3{font-size:.95rem}
.doc-contentp{font-size:.86rem}
.doc-contentul,.doc-contentol{font-size:.86rem}
.doc-contentpre{font-size:.78rem;padding:12px14px}
.doc-contentcode{font-size:.78rem}
.doc-contenttable.resp-cards{border:none}
.doc-contenttable.resp-cardsthead{display:none}
.doc-contenttable.resp-cardstbodytr{display:block;margin-bottom:14px;border:1px solid var(--border);
border-radius:var(--r);overflow:hidden;background:var(--card)}
.doc-contenttable.resp-cardstd{display:block;padding:0;border:none;border-bottom:1px solid var(--border);
font-size:.82rem}
.doc-contenttable.resp-cardstd:last-child{border-bottom:none}
.doc-contenttable.resp-cardstd::before{content:attr(data-label);display:block;font-weight:600;
color:var(--text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;
padding:8px14px0;line-height:1}
.doc-contenttable.resp-cardstd .td-val,
.doc-contenttable.resp-cardstdcode{display:block;padding:4px14px10px;font-family:var(--mono);
font-size:.78rem;color:var(--text-dim);word-break:break-all}
.doc-contenttable.resp-cardstdcode{background:none;border:none;border-radius:0;padding:014px2px;
color:var(--accent2);font-size:.76rem}
.doc-contenttable.resp-cardstd:first-child{background:var(--bg3);text-align:center;
padding:10px14px;font-family:var(--mono);color:var(--accent2);font-size:.9rem;font-weight:700;
letter-spacing:1px}
.doc-contenttable.resp-cardstd:first-child::before{display:none}
.doc-content .param-table{font-size:.78rem}
.doc-content .param-tableth{padding:8px10px;font-size:.68rem}
.doc-content .param-tabletd{padding:8px10px;font-size:.78rem}
.doc-content .param-tabletd:first-child{white-space:nowrap}
.doc-table-wrap{border:1px solid var(--border);border-radius:var(--r);margin:16px024px}
.doc-table-wraptable{margin:0;border:none}
.doc-table-wraptableth:first-child,.doc-table-wraptabletd:first-child{position:sticky;left:0;
z-index:1;background:var(--card)}
.doc-table-wraptableth:first-child{background:var(--bg3)}
}
</style>
<scripttype="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "OracleShellInstall Documentation",
"description": "Complete documentation for the OracleShellInstall automated Oracle database installation script.",
"url": "https://www.oracleshellinstall.com/docs.html",
"author": {
"@type": "Person",
"name": "Pengcheng Liu"
}
}
</script>
<script>var_hmt=_hmt||[];window.addEventListener('load',function(){varhm=document.createElement("script");hm.src="https://hm.baidu.com/hm.js?b873527e8685653a23ed88324ba56f4d";document.head.appendChild(hm)});</script>
<!-- Google tag (gtag.js) -->
<scriptasyncsrc="https://www.googletagmanager.com/gtag/js?id=G-GNDHG1PZLG"></script>
<script>
window.dataLayer=window.dataLayer||[];
functiongtag(){dataLayer.push(arguments);}
gtag('js',newDate());
gtag('config','G-GNDHG1PZLG');
</script>
</head>
<body>
<divclass="noise-overlay"></div>
<divid="nav"></div>
<divclass="container">
<divclass="doc-quick-dl" data-i18n="docQuickDl">已订阅专业版?<ahref="download.html">前往下载中心</a> 获取脚本和安装介质</div>
<divclass="doc-layout">
<!-- SIDEBAR -->
<navclass="doc-sidebar">
<divclass="doc-search">
<svgviewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circlecx="11" cy="11" r="8"/><pathd="M21 21l-4.35-4.35"/></svg>
<inputtype="text" id="docSearch" aria-label="搜索文档" placeholder="搜索文档..." data-i18n-placeholder-zh="搜索文档..." data-i18n-placeholder-en="Search docs...">
<buttonclass="search-clear" id="searchClear" aria-label="清除搜索">×</button>
</div>
<divclass="sb-title" data-i18n="sbQuick">快速入门</div>
<ahref="#quickstart" class="active" data-i18n="sbQuickstart">快速开始</a>
<ahref="#prepare" data-i18n="sbPrepare">环境准备</a>
<ahref="#media" data-i18n="sbMedia">安装介质</a>
<ahref="#howworks" data-i18n="sbHowworks">工作原理</a>
<divclass="sb-title" data-i18n="sbInstall">安装指南</div>
<ahref="#single" data-i18n="sbSingle">单机安装</a>
<ahref="#standalone" data-i18n="sbStandalone">单机 ASM 安装</a>
<ahref="#rac" data-i18n="sbRac">RAC 集群安装</a>
<ahref="#advanced" data-i18n="sbAdvanced">高级用法</a>
<ahref="#verify" data-i18n="sbVerify">安装验证</a>
<divclass="sb-title" data-i18n="sbParams">参数参考</div>
<ahref="#params-common" data-i18n="sbCommon">通用参数</a>
<ahref="#params-asm" data-i18n="sbAsm">ASM 参数</a>
<ahref="#params-rac" data-i18n="sbRacP">RAC 参数</a>
<divclass="sb-title" data-i18n="sbOther">其他</div>
<ahref="#troubleshoot" data-i18n="sbTrouble">故障排查</a>
<ahref="#faq" data-i18n="sbFaq">常见问题</a>
<ahref="#changelog" data-i18n="sbChangelog">更新日志</a>
</nav>
<!-- CONTENT -->
<divclass="doc-content doc-zh">
<divclass="doc-quickstart" id="quickstart">
<h3data-i18n="docQsTitle">快速入门</h3>
<divclass="doc-qs-grid">
<divclass="doc-qs-card">
<divclass="doc-qs-num">1</div>
<divclass="doc-qs-text" data-i18n="docQs1">上传脚本和 Oracle 安装介质至服务器 /soft 目录</div>
</div>
<divclass="doc-qs-card">
<divclass="doc-qs-num">2</div>
<divclass="doc-qs-text" data-i18n="docQs2">使用<ahref="generator.html">命令生成器</a>配置安装参数</div>
</div>
<divclass="doc-qs-card">
<divclass="doc-qs-num">3</div>
<divclass="doc-qs-text" data-i18n="docQs3">以 root 用户执行生成的命令,等待安装完成</div>
</div>
</div>
</div>
<h2id="quickstart-detail">快速开始</h2>
<p>OracleShellInstall 是一款 Oracle 数据库一键自动化安装脚本,支持 Oracle 11gR2 至 26ai 全版本,覆盖 20+ Linux 发行版。脚本会自动完成操作系统参数配置、依赖包安装、用户创建、Oracle 软件安装及数据库创建全流程。</p>
<h3>三步安装</h3>
<ol>
<li><strong>上传软件包</strong> - 将 <code>OracleShellInstall</code> 脚本和 Oracle 安装介质上传至服务器 <code>/soft</code> 目录</li>
<li><strong>配置参数</strong> - 使用 <ahref="generator.html">命令生成器</a> 或手动拼接安装参数</li>
<li><strong>执行安装</strong> - 在 <code>/soft</code> 目录下以 <code>root</code> 用户执行生成的命令</li>
</ol>
<divclass="note"><strong>注意:</strong>脚本必须以 root 用户执行,且需要在软件包所在目录下运行。Bash 版本需 >= 4。</div>
<h2id="prepare">环境准备</h2>
<h3>目录结构</h3>
<p>将以下文件放置在 <code>/soft</code> 目录下:</p>
<pre>/soft/
OracleShellInstall <spanclass="pc"># 安装脚本</span>
LINUX.X64_193000_db_home.zip <spanclass="pc"># Oracle 安装介质 (以19c为例)</span>
p35940989_190000.zip <spanclass="pc"># PSU/RU 补丁 (可选)</span>
p35926646_190000.zip <spanclass="pc"># OJVM 补丁 (可选)</span>
p6880880_190000.zip <spanclass="pc"># OPatch (可选,补丁需要)</span></pre>
<h3>系统要求</h3>
<ul>
<li>支持的操作系统:CentOS 7/8、RHEL 7/8/9、OracleLinux、Rocky Linux、Anolis OS、openEuler、麒麟 Kylin、统信 UOS、Ubuntu、Debian 等</li>
<li>Bash 版本 >= 4</li>
<li>建议内存 >= 2GB(生产环境建议 >= 8GB)</li>
<li>磁盘空间:Oracle 软件至少 15GB,数据文件根据业务需求规划</li>
<li>网络:确保 yum/dnf/apt 软件源可用,或使用本地源 (<code>-lrp Y</code>)</li>
<li>SELinux:脚本会自动关闭 SELinux,无需手动处理</li>
<li>防火墙:脚本会自动关闭防火墙,如需保留请安装后自行配置</li>
</ul>
<h2id="media">安装介质</h2>
<p>不同 Oracle 版本需要的安装介质文件不同,请根据目标版本准备对应的安装包。脚本会自动识别 <code>/soft</code> 目录下的 ZIP 文件。</p>
<divclass="doc-table-wrap">
<tableclass="media-table resp-cards">
<thead><tr><thscope="col">Oracle 版本</th><thscope="col">数据库安装介质</th><thscope="col">Grid 安装介质 (ASM/RAC)</th></tr></thead>
<tbody>
<tr><tddata-label="Oracle 版本">11gR2</td><tddata-label="数据库安装介质"><code>p13390677_112040_Linux-x86-64_1of7.zip</code><br><code>p13390677_112040_Linux-x86-64_2of7.zip</code></td><tddata-label="Grid 安装介质"><code>p13390677_112040_Linux-x86-64_3of7.zip</code></td></tr>
<tr><tddata-label="Oracle 版本">12cR2</td><tddata-label="数据库安装介质"><code>linuxx64_12201_database.zip</code></td><tddata-label="Grid 安装介质"><code>linuxx64_12201_grid_home.zip</code></td></tr>
<tr><tddata-label="Oracle 版本">19c</td><tddata-label="数据库安装介质"><code>LINUX.X64_193000_db_home.zip</code></td><tddata-label="Grid 安装介质"><code>LINUX.X64_193000_grid_home.zip</code></td></tr>
<tr><tddata-label="Oracle 版本">21c</td><tddata-label="数据库安装介质"><code>LINUX.X64_213000_db_home.zip</code></td><tddata-label="Grid 安装介质"><code>LINUX.X64_213000_grid_home.zip</code></td></tr>
<tr><tddata-label="Oracle 版本">26ai</td><tddata-label="数据库安装介质"><code>LINUX.X64_260000_db_home.zip</code></td><tddata-label="Grid 安装介质"><code>LINUX.X64_260000_grid_home.zip</code></td></tr>
</tbody>
</table>
</div>
<divclass="tip"><strong>提示:</strong>19c 及以上版本安装包只需一个 ZIP 文件。11gR2 需要多个分卷文件。补丁文件(PSU/RU/OJVM)和 OPatch 工具放置在同一目录即可,脚本会自动识别。</div>
<h2id="howworks">工作原理</h2>
<p>OracleShellInstall 脚本按照以下流程自动完成整个安装过程:</p>
<h3>执行流程</h3>
<ol>
<li><strong>参数校验</strong> - 验证所有输入参数的合法性,检查必填项,校验密码格式</li>
<li><strong>环境检测</strong> - 识别操作系统类型和版本,检测 CPU 架构,检查磁盘空间</li>
<li><strong>OS 配置</strong> - 配置主机名、hosts、内核参数、资源限制、关闭 SELinux/防火墙、配置 NTP 时间同步</li>
<li><strong>依赖安装</strong> - 根据 OS 类型自动配置软件源,安装 Oracle 所需的依赖包</li>
<li><strong>用户创建</strong> - 创建 oracle/grid 用户及 oinstall、dba、asmadmin 等用户组,配置环境变量</li>
<li><strong>目录准备</strong> - 创建 ORACLE_BASE、ORACLE_HOME 等目录结构并设置权限</li>
<li><strong>磁盘配置</strong> (ASM/RAC) - 通过 UDEV 规则或 multipath 配置 ASM 磁盘</li>
<li><strong>Grid 安装</strong> (ASM/RAC) - 解压并安装 Grid Infrastructure,创建 ASM 磁盘组</li>
<li><strong>SSH 互信</strong> (RAC) - 在所有节点间建立 root、oracle、grid 用户的 SSH 无密码登录</li>
<li><strong>数据库软件安装</strong> - 解压 Oracle 安装介质,静默安装数据库软件</li>
<li><strong>补丁应用</strong> (可选) - 应用 PSU/RU、OJVM 补丁</li>
<li><strong>数据库创建</strong> - 使用 DBCA 静默创建数据库实例,创建 PDB(如指定)</li>
<li><strong>安装后配置</strong> - 配置自动启动、优化参数(如指定)、配置大页内存(如指定)</li>
</ol>
<h3>日志文件</h3>
<p>安装过程中会生成两个日志文件:</p>
<ul>
<li><code>print_shell_install_*.log</code> - 详细输出日志,记录所有命令的标准输出和错误输出</li>
<li><code>shell_install_output_*.log</code> - 安装摘要日志,记录关键步骤的执行结果</li>
</ul>
<divclass="info"><strong>日志位置:</strong>日志文件生成在脚本执行的当前目录(通常为 <code>/soft</code>),文件名包含时间戳,便于区分多次安装。</div>
<h2id="single">单机安装</h2>
<p>单机模式基于文件系统存储,适用于开发测试及中小型业务场景。</p>
<h3>最简安装</h3>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">single</span><spanclass="pc">`# 单机模式`</span>\
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pc">`# 公网网卡名称`</span></pre>
<p>以上命令使用全部默认值安装:数据库名 orcl,字符集 AL32UTF8,安装目录 /u01,数据目录 /oradata。</p>
<h3>自定义安装</h3>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">single</span><spanclass="pc">`# 单机模式`</span>\
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pc">`# 公网网卡名称`</span>\
<spanclass="pf">-n</span><spanclass="pv">oracledb</span><spanclass="pc">`# 主机名`</span>\
<spanclass="pf">-o</span><spanclass="pv">prod</span><spanclass="pc">`# 数据库名称`</span>\
<spanclass="pf">-dp</span><spanclass="pv">'Passw0rd#'</span><spanclass="pc">`# 数据库密码`</span>\
<spanclass="pf">-ds</span><spanclass="pv">ZHS16GBK</span><spanclass="pc">`# 字符集`</span>\
<spanclass="pf">-pdb</span><spanclass="pv">pdb01,pdb02</span><spanclass="pc">`# 创建多个 PDB`</span>\
<spanclass="pf">-opd</span><spanclass="pv">Y</span><spanclass="pc">`# 优化数据库参数`</span></pre>
<h2id="standalone">单机 ASM 安装</h2>
<p>单机 ASM 模式需要 Grid Infrastructure 和 ASM 磁盘。脚本会自动配置 UDEV 绑盘或 multipath。</p>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">standalone</span><spanclass="pc">`# 单机 ASM 模式`</span>\
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pc">`# 公网网卡名称`</span>\
<spanclass="pf">-dd</span><spanclass="pv">/dev/sdb,/dev/sdc</span><spanclass="pc">`# DATA 磁盘`</span></pre>
<divclass="note"><strong>提示:</strong>如果不使用 multipath,可设置 <code>-mp N</code>,脚本将使用 UDEV 直接绑盘。如果已自行配置好 ASM 磁盘,可设置 <code>-adc N</code> 并传入已配置好的磁盘路径。</div>
<h3>自定义 ASM 安装</h3>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">standalone</span><spanclass="pc">`# 单机 ASM 模式`</span>\
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pc">`# 公网网卡名称`</span>\
<spanclass="pf">-o</span><spanclass="pv">prod</span><spanclass="pc">`# 数据库名称`</span>\
<spanclass="pf">-dp</span><spanclass="pv">'Passw0rd#'</span><spanclass="pc">`# 数据库密码`</span>\
<spanclass="pf">-mp</span><spanclass="pv">N</span><spanclass="pc">`# 不使用 multipath`</span>\
<spanclass="pf">-dd</span><spanclass="pv">/dev/sdb,/dev/sdc,/dev/sdd</span><spanclass="pc">`# 3 块 DATA 磁盘`</span>\
<spanclass="pf">-dn</span><spanclass="pv">DATADG</span><spanclass="pc">`# 自定义磁盘组名`</span>\
<spanclass="pf">-dr</span><spanclass="pv">NORMAL</span><spanclass="pc">`# NORMAL 冗余`</span>\
<spanclass="pf">-gpa</span><spanclass="pv">35940989</span><spanclass="pc">`# Grid 补丁`</span>\
<spanclass="pf">-opa</span><spanclass="pv">35940989</span><spanclass="pc">`# Oracle 补丁`</span></pre>
<divclass="warn"><strong>注意:</strong>NORMAL 冗余至少需要 3 块磁盘,HIGH 冗余至少需要 5 块磁盘。EXTERNAL 冗余为外部冗余(不做镜像),仅需 1 块磁盘。</div>
<h2id="rac">RAC 集群安装</h2>
<p>RAC 模式需要在第一个节点上执行脚本,脚本会自动配置所有节点的 SSH 互信、Grid 安装、ASM 磁盘及数据库创建。</p>
<divclass="warn"><strong>RAC 前置条件:</strong>
<ulstyle="margin:8px 0 0 20px">
<li>所有节点的 root 密码必须一致</li>
<li>所有节点需配置公网和心跳网络,且网络互通</li>
<li>共享磁盘需在所有节点上可见(SAN/iSCSI/共享 VMDK 等)</li>
<li>脚本仅需在第一个节点执行,会自动同步到其他节点</li>
</ul></div>
<h3>基础 2 节点 RAC</h3>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">rac</span><spanclass="pc">`# RAC 集群模式`</span>\
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pc">`# 公网网卡`</span>\
<spanclass="pf">-pf</span><spanclass="pv">eth1,eth2</span><spanclass="pc">`# 心跳网卡`</span>\
<spanclass="pf">-n</span><spanclass="pv">orcl</span><spanclass="pc">`# 主机名前缀`</span>\
<spanclass="pf">-hn</span><spanclass="pv">orcl01,orcl02</span><spanclass="pc">`# 所有节点主机名`</span>\
<spanclass="pf">-ri</span><spanclass="pv">10.0.0.101,10.0.0.102</span><spanclass="pc">`# 公网 IP`</span>\
<spanclass="pf">-vi</span><spanclass="pv">10.0.0.103,10.0.0.104</span><spanclass="pc">`# 虚拟 IP`</span>\
<spanclass="pf">-si</span><spanclass="pv">10.0.0.105</span><spanclass="pc">`# Scan IP`</span>\
<spanclass="pf">-rp</span><spanclass="pv">'rootPasswd'</span><spanclass="pc">`# root 密码`</span>\
<spanclass="pf">-od</span><spanclass="pv">/dev/sdb</span><spanclass="pc">`# OCR 磁盘`</span>\
<spanclass="pf">-dd</span><spanclass="pv">/dev/sdc</span><spanclass="pc">`# DATA 磁盘`</span></pre>
<h3>生产环境 RAC(含 ARCH 磁盘组和补丁)</h3>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">rac</span><spanclass="pc">`# RAC 集群模式`</span>\
<spanclass="pf">-lf</span><spanclass="pv">ens192</span><spanclass="pc">`# 公网网卡`</span>\
<spanclass="pf">-pf</span><spanclass="pv">ens224,ens256</span><spanclass="pc">`# 双心跳网卡`</span>\
<spanclass="pf">-n</span><spanclass="pv">dbprod</span><spanclass="pc">`# 主机名前缀`</span>\
<spanclass="pf">-hn</span><spanclass="pv">dbprod01,dbprod02</span><spanclass="pc">`# 节点主机名`</span>\
<spanclass="pf">-ri</span><spanclass="pv">192.168.1.101,192.168.1.102</span><spanclass="pc">`# 公网 IP`</span>\
<spanclass="pf">-vi</span><spanclass="pv">192.168.1.103,192.168.1.104</span><spanclass="pc">`# 虚拟 IP`</span>\
<spanclass="pf">-si</span><spanclass="pv">192.168.1.105</span><spanclass="pc">`# Scan IP`</span>\
<spanclass="pf">-rp</span><spanclass="pv">'R00t#2024'</span><spanclass="pc">`# root 密码`</span>\
<spanclass="pf">-o</span><spanclass="pv">proddb</span><spanclass="pc">`# 数据库名称`</span>\
<spanclass="pf">-dp</span><spanclass="pv">'Oracle#2024'</span><spanclass="pc">`# 数据库密码`</span>\
<spanclass="pf">-ds</span><spanclass="pv">ZHS16GBK</span><spanclass="pc">`# 中文字符集`</span>\
<spanclass="pf">-od</span><spanclass="pv">/dev/sdb,/dev/sdc,/dev/sdd</span><spanclass="pc">`# OCR 磁盘`</span>\
<spanclass="pf">-or</span><spanclass="pv">NORMAL</span><spanclass="pc">`# OCR NORMAL 冗余`</span>\
<spanclass="pf">-dd</span><spanclass="pv">/dev/sde,/dev/sdf,/dev/sdg</span><spanclass="pc">`# DATA 磁盘`</span>\
<spanclass="pf">-dr</span><spanclass="pv">NORMAL</span><spanclass="pc">`# DATA NORMAL 冗余`</span>\
<spanclass="pf">-ad</span><spanclass="pv">/dev/sdh,/dev/sdi</span><spanclass="pc">`# ARCH 归档磁盘`</span>\
<spanclass="pf">-ar</span><spanclass="pv">EXTERNAL</span><spanclass="pc">`# ARCH 冗余`</span>\
<spanclass="pf">-gpa</span><spanclass="pv">35940989</span><spanclass="pc">`# Grid 补丁`</span>\
<spanclass="pf">-opa</span><spanclass="pv">35940989</span><spanclass="pc">`# Oracle 补丁`</span>\
<spanclass="pf">-jpa</span><spanclass="pv">35926646</span><spanclass="pc">`# OJVM 补丁`</span>\
<spanclass="pf">-opd</span><spanclass="pv">Y</span><spanclass="pc">`# 优化数据库参数`</span>\
<spanclass="pf">-hf</span><spanclass="pv">Y</span><spanclass="pc">`# 配置大页内存`</span></pre>
<divclass="tip"><strong>提示:</strong>生产环境建议 OCR 磁盘组使用 NORMAL 冗余(至少 3 块磁盘),并配置独立的 ARCH 磁盘组用于归档日志。</div>
<h2id="advanced">高级用法</h2>
<h3>分步安装</h3>
<p>在某些场景下,可能需要将安装过程拆分为多个步骤独立执行:</p>
<h4>仅配置操作系统</h4>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">single</span> \
<spanclass="pf">-lf</span><spanclass="pv">eth0</span> \
<spanclass="pf">-m</span><spanclass="pv">Y</span><spanclass="pc">`# 仅完成 OS 配置,不安装 Oracle`</span></pre>
<p>适用于需要先检查 OS 配置是否正确,或需要在 OS 配置后做额外手动调整的场景。</p>
<h4>安装到 DB 软件结束</h4>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">single</span> \
<spanclass="pf">-lf</span><spanclass="pv">eth0</span> \
<spanclass="pf">-ud</span><spanclass="pv">Y</span><spanclass="pc">`# 安装到 DB 软件结束,不创建数据库`</span></pre>
<p>适用于需要手动创建数据库(如使用自定义模板或特殊配置)的场景。</p>
<h4>RAC 安装到 Grid 结束</h4>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">rac</span> \
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pf">-pf</span><spanclass="pv">eth1</span> \
<spanclass="pf">-hn</span><spanclass="pv">orcl01,orcl02</span><spanclass="pf">-ri</span><spanclass="pv">10.0.0.101,10.0.0.102</span> \
<spanclass="pf">-vi</span><spanclass="pv">10.0.0.103,10.0.0.104</span><spanclass="pf">-si</span><spanclass="pv">10.0.0.105</span> \
<spanclass="pf">-rp</span><spanclass="pv">'rootPasswd'</span><spanclass="pf">-od</span><spanclass="pv">/dev/sdb</span><spanclass="pf">-dd</span><spanclass="pv">/dev/sdc</span> \
<spanclass="pf">-ug</span><spanclass="pv">Y</span><spanclass="pc">`# 安装到 Grid 结束,不继续安装 DB`</span></pre>
<h3>一键打补丁</h3>
<p>将补丁文件和 OPatch 工具放入 <code>/soft</code> 目录,通过参数指定补丁编号即可自动应用:</p>
<pre>/soft/
OracleShellInstall
LINUX.X64_193000_db_home.zip <spanclass="pc"># Oracle 安装介质</span>
p35940989_190000_Linux-x86-64.zip <spanclass="pc"># PSU/RU 补丁</span>
p35926646_190000_Linux-x86-64.zip <spanclass="pc"># OJVM 补丁</span>
p6880880_190000_Linux-x86-64.zip <spanclass="pc"># OPatch 最新版</span></pre>
<divclass="info"><strong>说明:</strong>OPatch 工具 (<code>p6880880</code>) 是应用补丁的前置条件。脚本会自动替换 ORACLE_HOME 下的旧版 OPatch。如果仅安装不打补丁,则无需 OPatch 文件。</div>
<h3>多实例安装</h3>
<p>通过 <code>-o</code> 参数传入多个数据库名(逗号分隔),可在同一主机上创建多个数据库实例:</p>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">single</span> \
<spanclass="pf">-lf</span><spanclass="pv">eth0</span> \
<spanclass="pf">-o</span><spanclass="pv">proddb,testdb</span><spanclass="pc">`# 创建两个数据库实例`</span></pre>
<h3>VirtualBox 环境</h3>
<p>在 VirtualBox 虚拟机中安装 ASM/RAC 时,需要添加 <code>-vbox Y</code> 参数来修复 VirtualBox 的 SCSI 磁盘识别问题:</p>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">standalone</span> \
<spanclass="pf">-lf</span><spanclass="pv">eth0</span> \
<spanclass="pf">-dd</span><spanclass="pv">/dev/sdb</span> \
<spanclass="pf">-vbox</span><spanclass="pv">Y</span><spanclass="pc">`# VirtualBox 环境修复`</span></pre>
<h2id="verify">安装验证</h2>
<p>安装完成后,可通过以下方式验证安装是否成功:</p>
<h3>单机/Standalone 验证</h3>
<h4>检查监听状态</h4>
<pre><spanclass="pw">su - oracle</span>
<spanclass="pw">lsnrctl status</span></pre>
<p>应看到监听器处于 READY 状态,服务已注册。</p>
<h4>检查数据库状态</h4>
<pre><spanclass="pw">sqlplus / as sysdba</span>
<spanclass="pv">SELECT instance_name, status FROM v$instance;</span>
<spanclass="pv">SELECT name, open_mode FROM v$database;</span>
<spanclass="pv">SELECT name, open_mode FROM v$pdbs;</span><spanclass="pc">-- 如有 PDB</span></pre>
<p>数据库状态应为 <code>OPEN</code>,PDB 状态应为 <code>READ WRITE</code>。</p>
<h4>检查 ASM(Standalone/RAC)</h4>
<pre><spanclass="pw">su - grid</span>
<spanclass="pw">asmcmd lsdg</span></pre>
<p>应显示所有磁盘组的状态为 MOUNTED,可用空间正常。</p>
<h3>RAC 集群验证</h3>
<h4>检查集群状态</h4>
<pre><spanclass="pw">su - grid</span>
<spanclass="pw">crsctl stat res -t</span></pre>
<p>所有资源应为 ONLINE 状态。</p>
<h4>检查集群节点</h4>
<pre><spanclass="pw">olsnodes -n</span>
<spanclass="pw">crsctl check cluster -all</span></pre>
<h4>检查 Scan VIP</h4>
<pre><spanclass="pw">srvctl status scan</span>
<spanclass="pw">srvctl status scan_listener</span>
<spanclass="pw">srvctl status database -d proddb</span></pre>
<divclass="tip"><strong>提示:</strong>如果安装中使用了 <code>-opd Y</code> 优化参数,可通过 <code>SHOW PARAMETER</code> 确认 SGA/PGA 等参数已按预期配置。</div>
<h2id="params-common">通用参数</h2>
<divclass="doc-table-wrap">
<tableclass="param-table">
<tr><thscope="col">参数</th><thscope="col">说明</th><thscope="col">默认值</th></tr>
<tr><td>-lf</td><td>公网 IP 的网卡名称(必填)</td><td>-</td></tr>
<tr><td>-n</td><td>主机名(单机为主机名,RAC 为主机名前缀)</td><td>orcl</td></tr>
<tr><td>-o</td><td>数据库名称,支持多实例:orcl,oradb</td><td>orcl</td></tr>
<tr><td>-d</td><td>Oracle 软件安装根目录</td><td>/u01</td></tr>
<tr><td>-ou</td><td>系统 oracle 用户名称</td><td>oracle</td></tr>
<tr><td>-op</td><td>系统 oracle 用户密码,特殊字符需单引号包裹</td><td>oracle</td></tr>
<tr><td>-dp</td><td>数据库 sys/system 密码,需字母开头,可含 _#$</td><td>oracle</td></tr>
<tr><td>-ds</td><td>数据库字符集</td><td>AL32UTF8</td></tr>
<tr><td>-ns</td><td>数据库国家字符集</td><td>AL16UTF16</td></tr>
<tr><td>-dbs</td><td>数据库块大小:2048/4096/8192/16384/32768</td><td>8192</td></tr>
<tr><td>-redo</td><td>Redo 日志文件大小(MB)</td><td>1024</td></tr>
<tr><td>-er</td><td>启用归档模式:true/false</td><td>true</td></tr>
<tr><td>-pdb</td><td>PDB 名称(设置后自动启用 CDB 架构),多个逗号分隔</td><td>pdb01</td></tr>
<tr><td>-ord</td><td>数据文件目录(单机模式)</td><td>/oradata</td></tr>
<tr><td>-ard</td><td>归档文件目录(单机模式)</td><td>/oradata/archivelog</td></tr>
<tr><td>-lrp</td><td>配置本地软件源(Y/N)</td><td>Y</td></tr>
<tr><td>-nrp</td><td>配置网络软件源(Y/N)</td><td>N</td></tr>
<tr><td>-gui</td><td>安装系统图形界面(Y/N)</td><td>N</td></tr>
<tr><td>-opd</td><td>优化数据库参数(Y/N)</td><td>N</td></tr>
<tr><td>-hf</td><td>配置大页内存(Y/N)</td><td>N</td></tr>
<tr><td>-m</td><td>仅配置操作系统(Y/N)</td><td>N</td></tr>
<tr><td>-ud</td><td>安装到 DB 软件结束(Y/N)</td><td>N</td></tr>
<tr><td>-opa</td><td>Oracle PSU/RU 补丁编号</td><td>-</td></tr>
<tr><td>-jpa</td><td>OJVM PSU/RU 补丁编号</td><td>-</td></tr>
</table>
</div>
<h2id="params-asm">ASM 相关参数</h2>
<divclass="doc-table-wrap">
<tableclass="param-table">
<tr><thscope="col">参数</th><thscope="col">说明</th><thscope="col">默认值</th></tr>
<tr><td>-gu</td><td>系统 grid 用户名称</td><td>grid</td></tr>
<tr><td>-gp</td><td>系统 grid 用户密码</td><td>oracle</td></tr>
<tr><td>-adc</td><td>是否由脚本配置 ASM 磁盘(Y/N)</td><td>Y</td></tr>
<tr><td>-mp</td><td>配置 multipath 多路径(Y/N)</td><td>Y</td></tr>
<tr><td>-dd</td><td>DATA 磁盘组的磁盘列表(必填)</td><td>-</td></tr>
<tr><td>-dn</td><td>DATA 磁盘组名称</td><td>DATA</td></tr>
<tr><td>-dr</td><td>DATA 磁盘组冗余度:EXTERNAL/NORMAL/HIGH</td><td>EXTERNAL</td></tr>
<tr><td>-gpa</td><td>Grid PSU/RU 补丁编号</td><td>-</td></tr>
<tr><td>-vbox</td><td>VirtualBox 环境修复(Y/N)</td><td>N</td></tr>
</table>
</div>
<h2id="params-rac">RAC 专属参数</h2>
<divclass="doc-table-wrap">
<tableclass="param-table">
<tr><thscope="col">参数</th><thscope="col">说明</th><thscope="col">默认值</th></tr>
<tr><td>-pf</td><td>心跳网卡名称,多组逗号分隔(必填)</td><td>-</td></tr>
<tr><td>-hn</td><td>所有节点主机名,按顺序逗号分隔(必填)</td><td>-</td></tr>
<tr><td>-ri</td><td>所有节点公网 IP(必填)</td><td>-</td></tr>
<tr><td>-vi</td><td>所有节点虚拟 IP(必填)</td><td>-</td></tr>
<tr><td>-si</td><td>Scan IP 地址(必填)</td><td>-</td></tr>
<tr><td>-rp</td><td>root 用户密码,所有节点需一致(必填)</td><td>-</td></tr>
<tr><td>-cn</td><td>集群名称(不超过15位)</td><td>主机名前缀-cluster</td></tr>
<tr><td>-sn</td><td>Scan 名称</td><td>主机名前缀-scan</td></tr>
<tr><td>-od</td><td>OCR 磁盘组的磁盘列表(必填)</td><td>-</td></tr>
<tr><td>-ad</td><td>ARCH 磁盘组的磁盘列表</td><td>-</td></tr>
<tr><td>-on/-or</td><td>OCR 磁盘组名称/冗余度</td><td>OCR / EXTERNAL</td></tr>
<tr><td>-an/-ar</td><td>ARCH 磁盘组名称/冗余度</td><td>ARCH / EXTERNAL</td></tr>
<tr><td>-tsi</td><td>CTSS 时间服务器 IP</td><td>-</td></tr>
<tr><td>-dns</td><td>是否配置 DNS(多个 Scan IP 时需要)</td><td>N</td></tr>
<tr><td>-dnsn</td><td>DNS 服务器名称</td><td>-</td></tr>
<tr><td>-dnsi</td><td>DNS 服务器 IP</td><td>-</td></tr>
<tr><td>-ug</td><td>安装到 Grid 软件结束(Y/N)</td><td>N</td></tr>
</table>
</div>
<h2id="troubleshoot">故障排查</h2>
<h3>安装失败的通用排查步骤</h3>
<ol>
<li>查看详细输出日志:<code>cat /soft/print_shell_install_*.log</code></li>
<li>查看安装摘要日志:<code>cat /soft/shell_install_output_*.log</code></li>
<li>定位失败的具体步骤和错误信息</li>
<li>修复问题后,使用 <code>-m Y</code> 跳过 OS 配置重新执行</li>
</ol>
<h3>常见错误及解决方案</h3>
<h4>依赖包安装失败</h4>
<p><strong>错误表现:</strong>提示 yum/dnf 无法安装某些 RPM 包。</p>
<p><strong>解决方案:</strong></p>
<ul>
<li>检查是否配置了正确的软件源,或使用 <code>-lrp Y</code> 配置本地源</li>
<li>如需网络源,设置 <code>-nrp Y</code>,确保服务器可访问外网</li>
<li>对于国产系统(麒麟、统信),确保系统自带软件源完整</li>
</ul>
<h4>ASM 磁盘无法发现</h4>
<p><strong>错误表现:</strong>Grid 安装完成后 ASM 无法发现磁盘设备。</p>
<p><strong>解决方案:</strong></p>
<ul>
<li>检查磁盘设备是否存在:<code>ls -l /dev/sd*</code></li>
<li>确认磁盘未被分区或挂载:<code>lsblk</code></li>
<li>检查 UDEV 规则是否生效:<code>ls -l /dev/oracleasm/</code></li>
<li>如使用 multipath,检查多路径配置:<code>multipath -ll</code></li>
<li>VirtualBox 环境必须添加 <code>-vbox Y</code> 参数</li>
</ul>
<h4>RAC SSH 互信失败</h4>
<p><strong>错误表现:</strong>节点间无法建立 SSH 连接,提示 Permission denied。</p>
<p><strong>解决方案:</strong></p>
<ul>
<li>确认所有节点 root 密码一致</li>
<li>检查 <code>/etc/ssh/sshd_config</code> 是否允许 root 登录和密码认证</li>
<li>确认所有节点间网络互通:<code>ping</code> 测试公网和心跳 IP</li>
</ul>
<h4>内存不足导致 DBCA 失败</h4>
<p><strong>错误表现:</strong>创建数据库时提示内存不足或 ORA-00845 错误。</p>
<p><strong>解决方案:</strong></p>
<ul>
<li>确保可用内存 >= 2GB</li>
<li>如启用了大页内存 (<code>-hf Y</code>),确保 HugePages 配置正确</li>
<li>检查 <code>/dev/shm</code> 是否挂载且大小足够</li>
</ul>
<h4>OPatch 版本过低</h4>
<p><strong>错误表现:</strong>打补丁时提示 OPatch 版本不兼容。</p>
<p><strong>解决方案:</strong>下载最新的 OPatch 工具 (<code>p6880880</code>) 放入 <code>/soft</code> 目录,脚本会自动替换旧版本。</p>
<h2id="faq">常见问题</h2>
<h3>Q: 脚本支持哪些 Oracle 安装介质格式?</h3>
<p>脚本自动识别 Oracle 安装介质的 ZIP 包。将 ZIP 文件放置在 /soft 目录下即可,无需手动解压。</p>
<h3>Q: 安装过程中断了怎么办?</h3>
<p>查看安装日志文件 <code>print_shell_install_*.log</code> 和 <code>shell_install_output_*.log</code>,定位失败原因。修复后可使用 <code>-m Y</code> 参数跳过已完成的 OS 配置步骤。</p>
<h3>Q: RAC 安装时节点间需要什么网络条件?</h3>
<p>需要公网和心跳网络互通,所有节点 root 密码需一致。脚本会自动建立 SSH 互信。</p>
<h3>Q: 数据库密码有什么要求?</h3>
<p>数据库密码(<code>-dp</code>)必须以字母开头,只能包含字母、数字及 <code>_</code><code>#</code><code>$</code> 三种特殊字符。包含特殊字符时需用单引号包裹。</p>
<h3>Q: 如何过滤多路径磁盘?</h3>
<p>使用 <code>-fd</code> 参数可以过滤多路径磁盘,去除重复路径获取唯一盘符。例如:<code>-fd /dev/sda</code> 排除系统盘。</p>
<h3>Q: 是否支持离线安装?</h3>
<p>支持。使用 <code>-lrp Y</code> 参数配置本地软件源(需要系统安装 ISO),脚本会自动挂载 ISO 并配置本地 yum/dnf 源,无需外网连接。</p>
<h3>Q: 如何在已有 Oracle 环境上安装第二个数据库?</h3>
<p>使用 <code>-o</code> 参数指定新的数据库名即可。脚本会检测现有环境,跳过已完成的配置步骤。也可以使用 <code>-m Y</code> 跳过 OS 配置只创建数据库。</p>
<h3>Q: 脚本是否修改了操作系统的哪些配置?</h3>
<p>脚本会修改以下系统配置:</p>
<ul>
<li>主机名和 <code>/etc/hosts</code></li>
<li>内核参数 (<code>/etc/sysctl.conf</code>)</li>
<li>资源限制 (<code>/etc/security/limits.conf</code>)</li>
<li>关闭 SELinux 和防火墙</li>
<li>创建 oracle/grid 用户及用户组</li>
<li>配置 NTP/Chrony 时间同步</li>
<li>配置用户环境变量 (<code>.bash_profile</code>)</li>
</ul>
<h3>Q: 支持 ARM 架构服务器吗?</h3>
<p>支持。脚本会自动检测 CPU 架构(x86_64/aarch64),并使用对应的安装介质和依赖包。需要确保使用对应架构的 Oracle 安装介质。</p>
<h3>Q: 如何卸载由脚本安装的 Oracle?</h3>
<p>脚本不提供卸载功能。手动卸载步骤:停止数据库和监听器 → 删除 Oracle 目录 → 删除用户和用户组 → 清理系统配置 → 清理 <code>/etc/oraInst.loc</code> 和 <code>/etc/oratab</code>。</p>
<h2id="changelog">更新日志</h2>
<h3>v5.2.0 (2026-02-28)</h3>
<ul>
<li>完美适配 Oracle 26ai 版本安装</li>
<li>适配 Debian 12.10 安装,修复 ARM 版本 BUG</li>
<li>适配龙蜥 Anolis 23.2、openEuler 24.09</li>
<li>适配天翼云 CTyunOS</li>
<li>适配 CentOS / RHEL 10 安装 Oracle 11G ~ 23ai 全版本</li>
</ul>
<h3>v5.1.0 (2024-08-22)</h3>
<ul>
<li>适配 openSUSE / SUSE 15.6,修复 removeIPC 配置文件路径问题</li>
<li>修复数据库字符集支持,扩展至 247 种全部字符集</li>
<li>适配 Ubuntu (Deb) 系列安装 Oracle RAC</li>
<li>新增 <code>-hf</code> 参数支持大页内存 (HugePages) 自动配置</li>
<li>新增 <code>-debug</code> 脚本调试参数</li>
<li>适配 Oracle 23ai 先行版(For Exadata,非 RPM 安装)</li>
<li>完全适配 Linux ARM (aarch64) 19C 安装</li>
<li>新增自定义用户名参数:<code>-ou</code>(oracle 用户名)、<code>-gu</code>(grid 用户名)</li>
<li>适配 nvme 盘多路径配置</li>
<li>适配华为云欧拉 HCE aarch、腾讯 TencentOS 2/3/4、浪潮云峦 KeyarchOS 5</li>
<li>优化开机自启脚本配置逻辑</li>
<li>增加 grid 用户 rlwrap 配置</li>
</ul>
<h3>v5.0.0 (2024-06-18)</h3>
<ul>
<li>第五代版本正式上线,适配 99% 主流 Linux 操作系统</li>
<li>去除 <code>-iso</code> 参数,新增 <code>-lrp</code> / <code>-lnp</code> 软件源配置参数</li>
<li>新增 <code>-dbs</code> 参数指定数据库块大小,支持 2048 ~ 32768</li>
<li>重写软件源配置、软件安装和操作系统适配逻辑</li>
<li>重写 DBCA 建库逻辑,使用静默文件方式建库</li>
<li>支持复杂密码(去除密码复杂度限制)</li>
<li>重写在线重做日志逻辑,更加智能化</li>
<li>增加 <code>-o</code> 参数名称校验(长度、字符规则)</li>
<li>优化互信逻辑,提高 RAC SSH 互信成功概率</li>
<li>优化脚本逻辑,删除冗余代码,执行速度更快</li>
</ul>
<h3>v4.0.0 (2024-05-14)</h3>
<ul>
<li>第四代版本正式上线,完美适配主流国产操作系统</li>
<li>支持华为欧拉 openEuler 20~23、龙蜥 Anolis 7/8、统信 UOS V20、银河麒麟 Kylin V10 SP3、中标麒麟 NeoKylin V7</li>
<li>新增 <code>-giv</code> 参数,支持 GI 和 DB 不同版本安装</li>
<li>新增 <code>-o</code> 参数支持一键创建多个数据库实例(逗号分隔)</li>
<li>美化安装过程输出,增加脚本单步计时和完整安装计时</li>
<li>适配 SUSE 15 SP5、Fedora 39</li>
<li>增加 RHEL 9 安装 Oracle 19C 支持(需 RU 补丁 ≥ 19.19)</li>
<li>增加密码复杂度校验、国产数据库安装前置检查</li>
<li>修复多路径配置时排除系统盘 sda 的 BUG</li>
</ul>
<h3>v3.0.0 (2023-04-28)</h3>
<ul>
<li>RAC 模式不限节点数</li>
<li>新增单机 ASM 模式</li>
<li>新增 <code>-fd</code> 参数筛选多路径磁盘</li>
<li>支持不配置多路径直接 udev 绑盘</li>
<li>适配麒麟 V10 国产系统安装 Oracle 11gR2 / 12cR2 / 19c</li>
<li>适配 Linux 8 安装 Oracle 11gR2 单机版</li>
<li>安装过程输出全部汉化</li>
</ul>
<h3>v2.0.0 (2022-07-03)</h3>
<ul>
<li>重写 OracleShellInstall 脚本第二版</li>
<li>新增参数:<code>-redo</code> / <code>-pdb</code> / <code>-er</code> / <code>-opd</code> / <code>-lf</code> / <code>-dp</code></li>
<li>新增 <code>-jpa</code> 参数安装 OJVM 补丁</li>
<li>新增 <code>-adc</code> 参数支持无需脚本配置 ASM 磁盘(多路径 + udev)</li>
<li>支持 RAC 3+ 节点安装(删除固定 2 节点参数限制)</li>
<li>新增 swap 自动配置、多路控制文件复用</li>
</ul>
<h3>v1.0.0 (2022-04-01)</h3>
<ul>
<li>创建 OracleShellInstall 脚本</li>
<li>支持 Oracle 单机安装基础功能</li>
</ul>
</div>
<divclass="doc-content doc-en" style="display:none">
<h2id="en-quickstart">Quick Start</h2>
<p>OracleShellInstall is a one-click automated Oracle Database installation script supporting Oracle 11gR2 through 26ai across 20+ Linux distributions. The script automatically handles OS parameter configuration, dependency installation, user creation, Oracle software installation, and database creation.</p>
<h3>3-Step Install</h3>
<ol>
<li><strong>Upload packages</strong> - Upload <code>OracleShellInstall</code> and Oracle installation media to the <code>/soft</code> directory on your server</li>
<li><strong>Configure parameters</strong> - Use the <ahref="generator.html">Command Generator</a> or manually compose install parameters</li>
<li><strong>Execute</strong> - Run the generated command as <code>root</code> in the <code>/soft</code> directory</li>
</ol>
<divclass="note"><strong>Note:</strong> The script must be run as root user in the directory containing the installation media. Bash version >= 4 is required.</div>
<h2id="en-prepare">Prerequisites</h2>
<h3>Directory Structure</h3>
<p>Place the following files in the <code>/soft</code> directory:</p>
<pre>/soft/
OracleShellInstall <spanclass="pc"># Install script</span>
LINUX.X64_193000_db_home.zip <spanclass="pc"># Oracle media (19c example)</span>
p35940989_190000.zip <spanclass="pc"># PSU/RU patch (optional)</span>
p35926646_190000.zip <spanclass="pc"># OJVM patch (optional)</span>
p6880880_190000.zip <spanclass="pc"># OPatch (optional, needed for patches)</span></pre>
<h3>System Requirements</h3>
<ul>
<li>Supported OS: CentOS 7/8, RHEL 7/8/9, OracleLinux, Rocky Linux, Anolis OS, openEuler, Kylin, UOS, Ubuntu, Debian, etc.</li>
<li>Bash version >= 4</li>
<li>Recommended memory >= 2GB (production >= 8GB)</li>
<li>Disk space: at least 15GB for Oracle software, data files as per business requirements</li>
<li>Network: ensure yum/dnf/apt package sources are available, or use local repo (<code>-lrp Y</code>)</li>
<li>SELinux: the script automatically disables SELinux, no manual action needed</li>
<li>Firewall: the script automatically disables the firewall; re-configure after installation if needed</li>
</ul>
<h2id="en-media">Installation Media</h2>
<p>Different Oracle versions require different installation media files. Prepare the corresponding packages for your target version. The script automatically identifies ZIP files in the <code>/soft</code> directory.</p>
<divclass="doc-table-wrap">
<tableclass="media-table resp-cards">
<thead><tr><thscope="col">Oracle Version</th><thscope="col">Database Media</th><thscope="col">Grid Media (ASM/RAC)</th></tr></thead>
<tbody>
<tr><tddata-label="Oracle Version">11gR2</td><tddata-label="Database Media"><code>p13390677_112040_Linux-x86-64_1of7.zip</code><br><code>p13390677_112040_Linux-x86-64_2of7.zip</code></td><tddata-label="Grid Media"><code>p13390677_112040_Linux-x86-64_3of7.zip</code></td></tr>
<tr><tddata-label="Oracle Version">12cR2</td><tddata-label="Database Media"><code>linuxx64_12201_database.zip</code></td><tddata-label="Grid Media"><code>linuxx64_12201_grid_home.zip</code></td></tr>
<tr><tddata-label="Oracle Version">19c</td><tddata-label="Database Media"><code>LINUX.X64_193000_db_home.zip</code></td><tddata-label="Grid Media"><code>LINUX.X64_193000_grid_home.zip</code></td></tr>
<tr><tddata-label="Oracle Version">21c</td><tddata-label="Database Media"><code>LINUX.X64_213000_db_home.zip</code></td><tddata-label="Grid Media"><code>LINUX.X64_213000_grid_home.zip</code></td></tr>
<tr><tddata-label="Oracle Version">26ai</td><tddata-label="Database Media"><code>LINUX.X64_260000_db_home.zip</code></td><tddata-label="Grid Media"><code>LINUX.X64_260000_grid_home.zip</code></td></tr>
</tbody>
</table>
</div>
<divclass="tip"><strong>Tip:</strong> Oracle 19c and above only require a single ZIP file. 11gR2 requires multiple volume files. Patch files (PSU/RU/OJVM) and the OPatch tool should be placed in the same directory; the script identifies them automatically.</div>
<h2id="en-howworks">How It Works</h2>
<p>The OracleShellInstall script follows this automated workflow:</p>
<h3>Execution Flow</h3>
<ol>
<li><strong>Parameter Validation</strong> - Validates all input parameters, checks required fields, verifies password format</li>
<li><strong>Environment Detection</strong> - Identifies OS type and version, detects CPU architecture, checks disk space</li>
<li><strong>OS Configuration</strong> - Configures hostname, hosts, kernel parameters, resource limits, disables SELinux/firewall, configures NTP</li>
<li><strong>Dependency Installation</strong> - Automatically configures package sources and installs Oracle-required dependencies</li>
<li><strong>User Creation</strong> - Creates oracle/grid users and groups (oinstall, dba, asmadmin, etc.), sets environment variables</li>
<li><strong>Directory Setup</strong> - Creates ORACLE_BASE, ORACLE_HOME directory structure with proper permissions</li>
<li><strong>Disk Configuration</strong> (ASM/RAC) - Configures ASM disks via UDEV rules or multipath</li>
<li><strong>Grid Installation</strong> (ASM/RAC) - Extracts and installs Grid Infrastructure, creates ASM disk groups</li>
<li><strong>SSH Trust</strong> (RAC) - Establishes passwordless SSH between all nodes for root, oracle, and grid users</li>
<li><strong>Database Software Install</strong> - Extracts Oracle media and runs silent installation</li>
<li><strong>Patch Application</strong> (optional) - Applies PSU/RU and OJVM patches</li>
<li><strong>Database Creation</strong> - Creates database instance via DBCA silent mode, creates PDBs if specified</li>
<li><strong>Post-Install Config</strong> - Configures auto-start, optimizes parameters (if specified), configures HugePages (if specified)</li>
</ol>
<h3>Log Files</h3>
<p>Two log files are generated during installation:</p>
<ul>
<li><code>print_shell_install_*.log</code> - Detailed output log with all command stdout and stderr</li>
<li><code>shell_install_output_*.log</code> - Installation summary log with key step results</li>
</ul>
<divclass="info"><strong>Log location:</strong> Log files are created in the script's working directory (typically <code>/soft</code>), with timestamps in the filename for easy identification.</div>
<h2id="en-single">Single Instance Install</h2>
<p>Single instance mode uses file system storage, suitable for development, testing, and small-medium business scenarios.</p>
<h3>Minimal Install</h3>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">single</span><spanclass="pc">`# Single instance`</span>\
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pc">`# Public NIC name`</span></pre>
<p>This command uses all defaults: database name orcl, character set AL32UTF8, install directory /u01, data directory /oradata.</p>
<h3>Custom Install</h3>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">single</span><spanclass="pc">`# Single instance`</span>\
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pc">`# Public NIC name`</span>\
<spanclass="pf">-n</span><spanclass="pv">oracledb</span><spanclass="pc">`# Hostname`</span>\
<spanclass="pf">-o</span><spanclass="pv">prod</span><spanclass="pc">`# Database name`</span>\
<spanclass="pf">-dp</span><spanclass="pv">'Passw0rd#'</span><spanclass="pc">`# DB password`</span>\
<spanclass="pf">-ds</span><spanclass="pv">ZHS16GBK</span><spanclass="pc">`# Character set`</span>\
<spanclass="pf">-pdb</span><spanclass="pv">pdb01,pdb02</span><spanclass="pc">`# Create multiple PDBs`</span>\
<spanclass="pf">-opd</span><spanclass="pv">Y</span><spanclass="pc">`# Optimize DB params`</span></pre>
<h2id="en-standalone">Standalone ASM Install</h2>
<p>Standalone ASM mode requires Grid Infrastructure and ASM disks. The script automatically configures UDEV disk binding or multipath.</p>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">standalone</span><spanclass="pc">`# Standalone ASM`</span>\
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pc">`# Public NIC name`</span>\
<spanclass="pf">-dd</span><spanclass="pv">/dev/sdb,/dev/sdc</span><spanclass="pc">`# DATA disks`</span></pre>
<divclass="note"><strong>Tip:</strong> To skip multipath, set <code>-mp N</code> and the script will use UDEV binding directly. If you've already configured ASM disks, set <code>-adc N</code> and provide the configured disk paths.</div>
<h3>Custom ASM Install</h3>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">standalone</span><spanclass="pc">`# Standalone ASM`</span>\
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pc">`# Public NIC`</span>\
<spanclass="pf">-o</span><spanclass="pv">prod</span><spanclass="pc">`# Database name`</span>\
<spanclass="pf">-dp</span><spanclass="pv">'Passw0rd#'</span><spanclass="pc">`# DB password`</span>\
<spanclass="pf">-mp</span><spanclass="pv">N</span><spanclass="pc">`# Skip multipath`</span>\
<spanclass="pf">-dd</span><spanclass="pv">/dev/sdb,/dev/sdc,/dev/sdd</span><spanclass="pc">`# 3 DATA disks`</span>\
<spanclass="pf">-dn</span><spanclass="pv">DATADG</span><spanclass="pc">`# Custom diskgroup name`</span>\
<spanclass="pf">-dr</span><spanclass="pv">NORMAL</span><spanclass="pc">`# NORMAL redundancy`</span>\
<spanclass="pf">-gpa</span><spanclass="pv">35940989</span><spanclass="pc">`# Grid patch`</span>\
<spanclass="pf">-opa</span><spanclass="pv">35940989</span><spanclass="pc">`# Oracle patch`</span></pre>
<divclass="warn"><strong>Note:</strong> NORMAL redundancy requires at least 3 disks, HIGH redundancy requires at least 5 disks. EXTERNAL redundancy (no mirroring) requires only 1 disk.</div>
<h2id="en-rac">RAC Cluster Install</h2>
<p>RAC mode runs on the first node. The script automatically configures SSH trust on all nodes, installs Grid, sets up ASM disks, and creates the database.</p>
<divclass="warn"><strong>RAC Prerequisites:</strong>
<ulstyle="margin:8px 0 0 20px">
<li>All nodes must have the same root password</li>
<li>All nodes must have public and heartbeat networks configured and reachable</li>
<li>Shared disks must be visible on all nodes (SAN/iSCSI/shared VMDK, etc.)</li>
<li>Only run the script on the first node; it syncs to other nodes automatically</li>
</ul></div>
<h3>Basic 2-Node RAC</h3>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">rac</span><spanclass="pc">`# RAC cluster`</span>\
<spanclass="pf">-lf</span><spanclass="pv">eth0</span><spanclass="pc">`# Public NIC`</span>\
<spanclass="pf">-pf</span><spanclass="pv">eth1,eth2</span><spanclass="pc">`# Heartbeat NICs`</span>\
<spanclass="pf">-n</span><spanclass="pv">orcl</span><spanclass="pc">`# Hostname prefix`</span>\
<spanclass="pf">-hn</span><spanclass="pv">orcl01,orcl02</span><spanclass="pc">`# All node hostnames`</span>\
<spanclass="pf">-ri</span><spanclass="pv">10.0.0.101,10.0.0.102</span><spanclass="pc">`# Public IPs`</span>\
<spanclass="pf">-vi</span><spanclass="pv">10.0.0.103,10.0.0.104</span><spanclass="pc">`# Virtual IPs`</span>\
<spanclass="pf">-si</span><spanclass="pv">10.0.0.105</span><spanclass="pc">`# Scan IP`</span>\
<spanclass="pf">-rp</span><spanclass="pv">'rootPasswd'</span><spanclass="pc">`# root password`</span>\
<spanclass="pf">-od</span><spanclass="pv">/dev/sdb</span><spanclass="pc">`# OCR disks`</span>\
<spanclass="pf">-dd</span><spanclass="pv">/dev/sdc</span><spanclass="pc">`# DATA disks`</span></pre>
<h3>Production RAC (with ARCH Diskgroup and Patches)</h3>
<pre><spanclass="pw">sh OracleShellInstall</span> \
<spanclass="pf">-install_mode</span><spanclass="pv">rac</span><spanclass="pc">`# RAC cluster`</span>\
<spanclass="pf">-lf</span><spanclass="pv">ens192</span><spanclass="pc">`# Public NIC`</span>\
<spanclass="pf">-pf</span><spanclass="pv">ens224,ens256</span><spanclass="pc">`# Dual heartbeat NICs`</span>\
<spanclass="pf">-n</span><spanclass="pv">dbprod</span><spanclass="pc">`# Hostname prefix`</span>\
<spanclass="pf">-hn</span><spanclass="pv">dbprod01,dbprod02</span><spanclass="pc">`# Node hostnames`</span>\
<spanclass="pf">-ri</span><spanclass="pv">192.168.1.101,192.168.1.102</span><spanclass="pc">`# Public IPs`</span>\
<spanclass="pf">-vi</span><spanclass="pv">192.168.1.103,192.168.1.104</span><spanclass="pc">`# Virtual IPs`</span>\
<spanclass="pf">-si</span><spanclass="pv">192.168.1.105</span><spanclass="pc">`# Scan IP`</span>\
<spanclass="pf">-rp</span><spanclass="pv">'R00t#2024'</span><spanclass="pc">`# root password`</span>\
<spanclass="pf">-o</span><spanclass="pv">proddb</span><spanclass="pc">`# Database name`</span>\
<spanclass="pf">-dp</span><spanclass="pv">'Oracle#2024'</span><spanclass="pc">`# DB password`</span>\
<spanclass="pf">-ds</span><spanclass="pv">ZHS16GBK</span><spanclass="pc">`# Character set`</span>\
<spanclass="pf">-od</span><spanclass="pv">/dev/sdb,/dev/sdc,/dev/sdd</span><spanclass="pc">`# OCR disks`</span>\
<spanclass="pf">-or</span><spanclass="pv">NORMAL</span><spanclass="pc">`# OCR NORMAL redundancy`</span>\
<spanclass="pf">-dd</span><spanclass="pv">/dev/sde,/dev/sdf,/dev/sdg</span><spanclass="pc">`# DATA disks`</span>\
<spanclass="pf">-dr</span><spanclass="pv">NORMAL</span><spanclass="pc">`# DATA NORMAL redundancy`</span>\
<spanclass="pf">-ad</span><spanclass="pv">/dev/sdh,/dev/sdi</span><spanclass="pc">`# ARCH archive disks`</span>\
<spanclass="pf">-ar</span><spanclass="pv">EXTERNAL</span><spanclass="pc">`# ARCH redundancy`</span>\
<spanclass="pf">-gpa</span><spanclass="pv">35940989</span><spanclass="pc">`# Grid patch`</span>\
<spanclass="pf">-opa</span><spanclass="pv">35940989</span><spanclass="pc">`# Oracle patch`</span>\
<spanclass="pf">-jpa</span><spanclass="pv">35926646</span><spanclass="pc">`# OJVM patch`</span>\
<spanclass="pf">-opd</span><spanclass="pv">Y</span><spanclass="pc">`# Optimize DB params`</span>\
<spanclass="pf">-hf</span><spanclass="pv">Y</span><spanclass="pc">`# Configure HugePages`</span></pre>
<divclass="tip"><strong>Tip:</strong> For production environments, use NORMAL redundancy for the OCR diskgroup (at least 3 disks) and configure a separate ARCH diskgroup for archive logs.</div>
<h2id="en-params-common">Common Parameters</h2>
<divclass="doc-table-wrap">
<tableclass="param-table">
<tr><thscope="col">Param</th><thscope="col">Description</th><thscope="col">Default</th></tr>
<tr><td>-lf</td><td>Public IP network interface name (required)</td><td>-</td></tr>
<tr><td>-n</td><td>Hostname (single) or hostname prefix (RAC)</td><td>orcl</td></tr>
<tr><td>-o</td><td>Database name, supports multiple: orcl,oradb</td><td>orcl</td></tr>
<tr><td>-d</td><td>Oracle software installation root directory</td><td>/u01</td></tr>
<tr><td>-ou</td><td>System oracle username</td><td>oracle</td></tr>
<tr><td>-op</td><td>System oracle user password, wrap special chars in single quotes</td><td>oracle</td></tr>
<tr><td>-dp</td><td>Database sys/system password, must start with letter, may contain _#$</td><td>oracle</td></tr>
<tr><td>-ds</td><td>Database character set</td><td>AL32UTF8</td></tr>
<tr><td>-ns</td><td>National character set</td><td>AL16UTF16</td></tr>
<tr><td>-dbs</td><td>Database block size: 2048/4096/8192/16384/32768</td><td>8192</td></tr>
<tr><td>-redo</td><td>Redo log file size (MB)</td><td>1024</td></tr>
<tr><td>-er</td><td>Enable archive mode: true/false</td><td>true</td></tr>
<tr><td>-pdb</td><td>PDB name (enables CDB architecture), comma-separated for multiple</td><td>pdb01</td></tr>
<tr><td>-ord</td><td>Data file directory (single instance mode)</td><td>/oradata</td></tr>
<tr><td>-ard</td><td>Archive file directory (single instance mode)</td><td>/oradata/archivelog</td></tr>
<tr><td>-lrp</td><td>Configure local software repository (Y/N)</td><td>Y</td></tr>
<tr><td>-nrp</td><td>Configure network software repository (Y/N)</td><td>N</td></tr>
<tr><td>-gui</td><td>Install system GUI (Y/N)</td><td>N</td></tr>
<tr><td>-opd</td><td>Optimize database parameters (Y/N)</td><td>N</td></tr>
<tr><td>-hf</td><td>Configure HugePages (Y/N)</td><td>N</td></tr>
<tr><td>-m</td><td>OS configuration only (Y/N)</td><td>N</td></tr>
<tr><td>-ud</td><td>Install to DB software only (Y/N)</td><td>N</td></tr>
<tr><td>-opa</td><td>Oracle PSU/RU patch ID</td><td>-</td></tr>
<tr><td>-jpa</td><td>OJVM PSU/RU patch ID</td><td>-</td></tr>
</table>