002.Oracle安裝部署-ASM

来源:https://www.cnblogs.com/itzgr/archive/2019/02/02/10347499.html
-Advertisement-
Play Games

一 環境準備 圖形界面:略 安裝包: linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 二 安裝ASM-Oracle準備 2.1 用戶名/組建立 2.2 相關目錄創建 附:oracle預設不支持CentOS系統安裝 ...


一 環境準備

圖形界面:略 安裝包: linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

二 安裝ASM-Oracle準備

2.1 用戶名/組建立

  1 [root@localhost ~]#hostnamectl set-hostname oracle
  2 [root@oracle ~]# vi /etc/hosts
  3 172.24.8.30 oracle						#將localhost修改為相應的主機名
  4 [root@oracle ~]# groupadd oinstall				#創建用戶組oinstall
  5 [root@oracle ~]# groupadd dba				#創建用戶組dba
  6 [root@oracle ~]# groupadd oper				#創建用戶組dba
  7 [root@oracle ~]# groupadd asmadmin
  8 [root@oracle ~]# groupadd asmdba
  9 [root@oracle ~]# groupadd asmoper
 10 [root@oracle ~]# useradd -g oinstall -G dba,oper,asmadmin,asmdba,asmoper -s /bin/bash -d /home/oracle -m oracle						                #創建oracle用戶,主組為oinstall,並加入到之前創建的所有組。
 11 [root@oracle ~]# useradd -g oinstall -G dba,oper,asmadmin,asmdba,asmoper -s /bin/bash -d /home/grid -m grid						                        #創建grid組
 12 [root@oracle ~]# echo x120952576 | passwd --stdin oracle	#設置Oracle用戶密碼
 13 [root@oracle ~]# echo x120952576 | passwd --stdin grid	#設置grid用戶密碼

2.2 相關目錄創建

  1 [root@oracle ~]# mkdir -p /data/oracle			#oracle資料庫安裝目錄
  2 [root@oracle ~]# mkdir -p /data/grid			#grid組件安裝目錄
  3 [root@oracle ~]# mkdir -p /data/oraInventory		#oracle資料庫配置文件目錄
  4 [root@oracle ~]# mkdir -p /data/database			#oracle資料庫軟體包解壓目錄
  5 [root@oracle ~]# chown -R grid:oinstall /data/
  6 [root@oracle ~]# chown -R oracle:oinstall /data/oracle/
  7 [root@oracle ~]# chmod 755 /data				#設置目錄所有者為oinstall用戶組的oracle用戶
附:oracle預設不支持CentOS系統安裝,需要如下修改
  1 [root@oracle data]# vi /etc/redhat-release
  2 redhat-7

2.3 基礎依賴包安裝

根據Oracle官方給出參考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#BABCFJFG binutils-2.23.52.0.1-12.el7.x86_64 compat-libcap1-1.10-3.el7.x86_64 compat-libstdc++-33-3.2.3-71.el7.i686 compat-libstdc++-33-3.2.3-71.el7.x86_64 gcc-4.8.2-3.el7.x86_64 gcc-c++-4.8.2-3.el7.x86_64 glibc-2.17-36.el7.i686 glibc-2.17-36.el7.x86_64 glibc-devel-2.17-36.el7.i686 glibc-devel-2.17-36.el7.x86_64 ksh libaio-0.3.109-9.el7.i686 libaio-0.3.109-9.el7.x86_64 libaio-devel-0.3.109-9.el7.i686 libaio-devel-0.3.109-9.el7.x86_64 libgcc-4.8.2-3.el7.i686 libgcc-4.8.2-3.el7.x86_64 libstdc++-4.8.2-3.el7.i686 libstdc++-4.8.2-3.el7.x86_64 libstdc++-devel-4.8.2-3.el7.i686 libstdc++-devel-4.8.2-3.el7.x86_64 libXi-1.7.2-1.el7.i686 libXi-1.7.2-1.el7.x86_64 libXtst-1.2.2-1.el7.i686 libXtst-1.2.2-1.el7.x86_64 make-3.82-19.el7.x86_64 sysstat-10.1.5-1.el7.x86_64 依次yum安裝即可,也可高於以上建議版本:
  1 yum -y install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* pdksh-* compat-libcap1
swap要求最低2.67G

2.4 防火牆及SELinux設置

  1 [root@oracle ~]# systemctl stop firewalld.service
  2 [root@oracle ~]# systemctl disable firewalld.service
  3 [root@oracle ~]# setenforce 0
  4 [root@oracle ~]# vi /etc/selinux/config
  5 SELINUX=disabled

2.5 修改內核參數

  1 [root@oracle ~]# vi /etc/sysctl.conf
  2 net.ipv4.icmp_echo_ignore_broadcasts = 1
  3 net.ipv4.conf.all.rp_filter = 1
  4 fs.file-max = 6815744					#設置最大打開文件數
  5 fs.aio-max-nr = 1048576
  6 kernel.shmall = 2097152					#共用記憶體的總量
  7 kernel.shmmax = 2147483648				#最大共用記憶體的段大小
  8 kernel.shmmni = 4096					#整個系統共用記憶體端的最大數
  9 kernel.sem = 250 32000 100 128
簡要描述這四個參數     SEMMSL: 每個信號集的最大信號數量     SEMMNS: 系統信號量(非信號集)最大數量     SEMOPM: 每次semop系統調用可執行的信號操作數     SEMMNI:系統信號量集最大數量
  1 net.ipv4.ip_local_port_range = 9000 65500		#可使用的IPv4埠範圍
  2 net.core.rmem_default = 262144
  3 net.core.rmem_max= 4194304
  4 net.core.wmem_default= 262144
  5 net.core.wmem_max= 1048576
  6 [root@oracle ~]# sysctl -p				#使配置生效

2.6 提高軟體運行性能

對oracle用戶設置限制,提高軟體運行性能
  1 [root@oracle ~]# vi /etc/security/limits.conf
  2 @student - maxlogins 4
  3 oracle soft nproc 2047
  4 oracle hard nproc 16384
  5 oracle soft nofile 1024
  6 oracle hard nofile 65536
  7 grid soft nproc 2047
  8 grid hard nproc 16384
  9 grid soft nofile 1024
 10 grid hard nofile 65536
 11 # End of file

三 分區準備

3.1 磁碟分區

將磁碟分區,具體分區操作——略。 本實驗採用LVM分區,通知創建10個50G大小的lvm邏輯分區。
  1 [root@oracle ~]# lvcreate -L 50g -n asm01 vg01
  2 ……
  3 [root@oracle ~]# lvcreate -L 50g -n asm10 vg01

3.2 安裝asm支持組件

在oracle官方找到對應的alm組件。 http://www.oracle.com/technetwork/server-storage/linux/asmlib/index-101839.html 29 將相關rpm包上傳至相應目錄。 30
  1 [root@oracle file]# yum -y install oracleasm
  2 [root@oracle file]# rpm -ivh oracleasm*

3.3 初始化sm磁碟

  1 [root@oracle ~]# oracleasm configure -i				#初始化
  2 Default user to own the driver interface []: oracle		        #擁有此介面的用戶
  3 Default group to own the driver interface []: oinstall		#組
  4 Scan for Oracle ASM disks on boot (y/n) [y]: y			#系統啟動時是否掃描asm磁碟組
  5 [root@oracle ~]# oracleasm init					#保存asm設備文件的目錄
31

3.4 創建sm磁碟

  1 [root@oracle ~]# vi oracleasm.sh
  2 #!/bin/bash
  3 oracleasm createdisk asmdisk01 /dev/vg01/asm01
  4 oracleasm createdisk asmdisk02 /dev/vg01/asm02
  5 oracleasm createdisk asmdisk03 /dev/vg01/asm03
  6 oracleasm createdisk asmdisk04 /dev/vg01/asm04
  7 oracleasm createdisk asmdisk05 /dev/vg01/asm05
  8 oracleasm createdisk asmdisk06 /dev/vg01/asm06
  9 oracleasm createdisk asmdisk07 /dev/vg01/asm07
 10 oracleasm createdisk asmdisk09 /dev/vg01/asm08
 11 oracleasm createdisk asmdisk09 /dev/vg01/asm09
 12 oracleasm createdisk asmdisk10 /dev/vg01/asm10
 13 [root@oracle ~]# ./oracleasm.sh			#使用腳本創建相應磁碟。
 14 [root@oracle ~]# oracleasm listdisks		#驗證所創建的磁碟
32
  1 [root@oracle ~]# ll /dev/oracleasm/disks/	#檢查磁碟是否已經掛載到oracleasm文件系統
33

四 grid組件

4.1 grid組件獲取

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_grid.zip 34
  1 [root@oracle file]# unzip linux.x64_11gR2_grid.zip -d /data/database/

4.2 grid組件安裝

  1 [root@oracle file]# chown grid /data/database/grid/
  2 [grid@oracle ~]$ cd /data/database/grid/
  3 [grid@oracle grid]$ ./runInstaller		#切換至grid用戶進入圖形界面
35 #選擇安裝單節點伺服器 36 #選擇英語 37 選擇四塊3.4創建asm磁碟。 冗餘方式選擇——
  • normal:相同的數據在磁碟中至少存儲兩份;
  • high:存儲三份;
  • external:不提供冗餘。
  • AU size:分配單元的大小。
38 #指定sys和asmsnmp的密碼,並忽略密碼告警。 39 #指定系統用戶組對asm的相應管理組。 40 #指定軟體安裝的目錄。 41 #指定Inventory的目錄。 42 #前置條件檢查,切換至root用戶執行腳本。 43 若有未解決的依賴,依次解決,註意:安裝的高版本對於oracle也會告警,但不會影響使用,可跳過。 44 核對相關信息。 45 #使用root用戶執行上述兩個腳本
  1 [root@oracle ~]# cd /data/oraInventory/
  2 [root@oracle oraInventory]# ./orainstRoot.sh
  3 [root@oracle ~]# cd /data/grid/product/11.2.0/grid/
  4 [root@oracle grid]# ./root.sh
報錯1:error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory
  1 [root@oracle grid]# yum -y install compat-libcap1
  2 [root@oracle grid]# /data/grid/product/11.2.0/grid/crs/install/rootcrs.pl -deconfig -force -verbose
  3 [root@oracle grid]# ./root.sh
報錯2:CRS-4124: Oracle High Availability Services startup failed Oracle Linux 7上執root.sh時註意
  1 [root@oracle grid]# /data/grid/product/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose
  2 [root@oracle grid]# ./root.sh
當命令行視窗出現Adding Clusterware entries to inittab時,立即在另一視窗以root用戶執行:
  1 /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/nullbs=1024 count=1
如果出現:/bin/dd: opening`/var/tmp/.oracle/npohasd': No such file or directory,則說明文件還沒生成就繼續執行,直到能執行為止,等待root.sh成功執行完畢後可以ctrl+c取消。 46

4.3 grid修改環境變數

  1 [root@oracle ~]# vi /home/grid/.bash_profile		#修改Oracle用戶的環境變數
  2 export ORACLE_BASE=/data/grid				#oracle資料庫安裝目錄
  3 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid	        #oracle資料庫路徑
  4 export ORACLE_SID=+ASM					#oracle啟動資料庫實例名
  5 export ORACLE_TERM=xterm				        #xterm視窗模式安裝
  6 export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH		#添加系統環境變數
  7 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib	#添加系統環境變數
  8 export LANG=en_US						#防止安裝過程出現亂碼
  9 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK			#設置Oracle客戶端字元集
 10 [grid@oracle ~]$ source /home/grid/.bash_profile
附加——CentOS7所需步驟
  1 [root@oracle ~]# vi /usr/lib/systemd/system/ohas.service	#手動添加ohas服務
  2 [Unit]
  3 Description=Oracle High Availability Services
  4 After=syslog.target
  5 
  6 [Service]
  7 ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple
  8 Restart=always
  9 
 10 [Install]
 11 WantedBy=multi-user.target
 12 [root@oracle ~]# chmod 777 /usr/lib/systemd/system/ohas.service
 13 [root@oracle ~]# systemctl enable ohas.service		#設置為開機啟動
 14 [root@oracle ~]# systemctl start ohas.service

4.4 登錄測試

使用grid用戶連接資料庫測試。 47

五 grid用戶環境優化

5.1 環境修改

  1 [root@oracle ~]# vi /data/grid/product/11.2.0/grid/sqlplus/admin/glogin.sql
  2 define_editor=vim					#定義編輯器為vim
  3 set linesize 160					#設置一行顯示的字元
  4 set pagesize 100					#設置一頁顯示的行數
  5 set sqlprompt '_user@ _connect_identifier>'		#設置提示符

5.2 支持鍵盤方向鍵操作

提示:預設oracle不支持方向鍵操作,需要安裝rlwrap插件。 採用編譯安裝rlwrap-0.37.tar,過程略。 若報錯如下—— 48 則需要yum安裝以下兩個rpm包之後再次編譯安裝——
  1 [root@oracle file]# yum -y install libtermcap-devel readline-devel
  2 [root@oracle file]# tar -zxvf rlwrap-0.37.tar.gz
  3 [root@oracle file]# cd rlwrap-0.37/
  4 [root@oracle rlwrap-0.37]# ./configure
  5 [root@oracle rlwrap-0.37]# make install
  6 [root@oracle ~]# vi /home/grid/.bash_profile
  7 alias sqlplus='rlwrap sqlplus'
  8 alias rman='rlwrap rman'
  9 [root@oracle rlwrap-0.37]# su - grid
 10 [rid@oracle ~]$ source .bash_profile

5.3 密碼設置

  1 [oracle@oracle ~]$ sqlplus / as sysdba
  2 SYS@ orcl>alter profile default limit password_life_time unlimited;        #oracle預設180天過期,可設置口令永不過期

六 使用ASM磁碟創建FRA(快速恢復區)

6.1 創建Fast Recovery Area

使用grid用戶 [grid@oracle ~]$ asmca 49 #創建新的磁碟組。 50 #選擇相應的磁碟,並設置為不提供冗餘。 51 #創建成功。 52 #確認創建成功。

七 安裝oracle 11g

7.1 解壓安裝包

  1 [root@oracle ~]# cd /data/file/ 	 					     #進入oracle包所在目錄
  2 [root@oracle file]# ls
  3 linux.x64_11gR2_database_1of2.zip  linux.x64_11gR2_database_2of2.zip
  4 [root@oracle file]# unzip linux.x64_11gR2_database_1of2.zip -d /data/database/  #解壓
  5 [root@oracle file]# unzip linux.x64_11gR2_database_2of2.zip -d /data/database/  #解壓
  6 [root@oracle file]# chown -R oracle:oinstall /data/database/database/

7.2 啟動Oracle安裝

採用oracle用戶進入圖形界面,並啟動安裝程式。
  1 [oracle@oracle ~]# su oracle
  2 [oracle@oracle ~]$ cd /data/database/database/
  3 [oracle@oracle database]$ ./runInstaller
註意: 1:以上必須進入圖形界面之後操作; 2:若出現以下報錯——
  1 Could not execute auto check for display colors using command /usr/bin/xdpyinfo.
需要使用root用戶執行以下操作,之後切換回oracle用戶再次執行以上runInstaller即可。
  1 xhost + 172.24.8.30
  2 xhost +SI:localuser:oracle
  email可不填。 53 選擇創建和配置資料庫選項,下一步。 54 #只安裝資料庫軟體 55 #選擇單實例。 56 #選擇英語。 57 #選擇企業版。 58 #選擇需要安裝的目錄。 59 #設置用戶組。 60 #前置條件檢查,由於系統存在相關rpm包的高版本,可直接忽略。 61 #確認相關信息。 62 #漫長的等待。 63 #使用root執行上面的腳本。 64 #安裝完成。

7.3 相關環境設置

  1 [root@oracle ~]# vi /home/oracle/.bash_profile		#修改Oracle用戶的環境變數
  2 export ORACLE_BASE=/data/oracle				#oracle資料庫安裝目錄
  3 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1	#oracle資料庫路徑
  4 export ORACLE_SID=orcl					#oracle啟動資料庫實例名
  5 export ORACLE_TERM=xterm				        #xterm視窗模式安裝
  6 export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH		#添加系統環境變數
  7 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib	#添加系統環境變數
  8 export LANG=en_US						#防止安裝過程出現亂碼
  9 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK			#設置Oracle客戶端字元集
 10 [oracle@oracle ~]$ source /home/oracle/.bash_profile

7.4 建庫

使用oracle用戶在圖形界面執行—— [oracle@oracle ~]$ dbca 65 #創建資料庫 66 #預設即可。 67 #全局資料庫名字和SID。 68 69

#開啟EMO及自動維護任務。

70 #指定相應的口令。 71 #選擇ASM系統中的ASMGROUP01。 72

#確認相關信息。

73 #多元化設置,同一個文件存儲多份,聯機重做log和控制log都存在兩個不同的地方,+ASMGROUP01、+FRAGROUP01。 74 #設置口令。 75 #指定快速恢復區。 76 #開啟歸檔模式。 77 #安裝簡單實例方案。 78 #
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、關係查詢處理和查詢優化 關係資料庫系統的查詢處理 查詢處理的步驟分為4個階段:查詢分析、查詢檢查、查詢優化和查詢執行。 查詢語句(由此語句進行查詢) 1、查詢分析 首先對查詢語句進行掃描、詞法分析和語法分析。對SQL關鍵字、屬性名和關係名等,進行語法檢查和語法分析 ,即判斷查詢語句是否符合SQL ...
  • SqlServer中的系統資料庫有五個,平時寫代碼不太關註,今天一時興起研究了一下。 1. master 記錄SQL Server系統的所有系統級信息,例如:登陸賬戶信息、鏈接伺服器和系統配置設置、記錄其他所有資料庫的存在、數據文件的位置、SQL Server的初始化信息等。如果master資料庫不 ...
  • 此篇文章是主要介紹Redis在數據存儲方面的其中一種方式,壓縮列表。本文會介紹1. 壓縮列表(ziplist)的使用場景 2.如何達到節約記憶體的效果?3.壓縮列表的存儲格式 4. 連鎖更新的問題 5. conf文件配置。在實踐上的操作主要是對conf配置文件進行配置,具體上沒有確切的一個值,更多是經 ...
  • [TOC] 第二章 shanzm 準備 1.建立員工表——EMP 欄位說明: |EMP(員工表)欄位|說明| | | | EMPNO|工號 ENAME|姓名 JOB|工種 MGR|上級編號 HIREDATE|雇佣日期 SAL|工資 COMM|獎金 DEPTNO|部門編號 2.建立部門表——DEPT ...
  • [TOC] 明確MongoDB在企業級應用中充當的角色,為之後的技術選型提供一個可查閱的信息簡報。 1、MongoDB是什麼? 2、為什麼要使用MongoDB? 3、主要特性 4、C/S服務模型 5、完善的命令行工具 6、幾個shell實操 7、在Java中使用MongoDB 1、MongoDB是什 ...
  • # 以下選項會被MySQL客戶端應用讀取。 # 註意只有mysql附帶的客戶端應用程式保證可以讀取這段內容。 # 如果你想你自己的MySQL應用程式獲取這些值。 # 需要在MySQL客戶端庫初始化的時候指定這些選項。 # [client] #password = [your_password] po ...
  • #備份資料庫:導出全部資料庫:--all-databases, -A導出幾個資料庫。參數後面所有名字參量都被看作資料庫名:--databases, -B導出存儲過程以及自定義函數:--routines, -R導出事件:--events, -E不緩衝查詢,直接導出到標準輸出。預設為打開狀態,使用--s ...
  • 死鎖雜談 當資料庫死鎖時,SqlServer會釋放一個優先順序較低的鎖,讓另一個事務運行;所以,即時去捕捉資料庫死鎖,是挺不容易的。 如果,資料庫死鎖比較長時間,那麼死鎖是可以被捕捉的。 可以用SqlServer活動監視器來查看,哪些進程鎖了資料庫。 首先打開SqlServer活動監視器,然後可以看到 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...