Starting DBRU 19.27 and 23.8 Small Pages Are Not Allowed for RDBMS SGA In Exadata. (Doc ID 3081878.1)

 

(단 일반 시스템은 아니고 Exadata 만 해당된다)

 

바뀐 이유 : 

SGA를 위해 작은 페이지를 사용하면 VM(데이터베이스 인스턴스가 실행 중인) 내부와 하이퍼바이저에 페이지 테이블과 RDMA 리소스 메모리 블롯이 생성된다. 이는 DB 노드에 불안정을 초래하고 해당 DB 노드의 모든 인스턴스에 문제를 일으킬 수 있다.

 

기존 Small Pages 를 사용할 경우 설정값에 따라 alertlog에 아래와 같이 Error 발생함.

 

ORA-27138: unable to allocate large pages with current parameter setting

 

       ERROR: use_large_pages = FALSE is not a supported setting for database on Exadata

       ERROR: use_large_pages = TRUE is not a supported setting for database on Exadata

       ERROR: use_large_pages = AUTO is not a supported setting for database on Exadata

 

기본 리눅스 Memory Page s기본값 : 4k

Exadata Memory Page s기본값 : 2048K

 

메모리 블롯 (bloat)은 프로그램이 의도한 작업을 실행하는 데 필요한 것보다 더 많은 메모리를 사용하는 상황을 말함.
일반적으로 메모리 최적화 불량, 과도한 데이터 캐싱 또는 중복 객체의 축적으로 인해 발생하는데 이는 결과적으로 프로그램의 메모리 사용량이 증가하여 성능 저하 및 잠재적인 속도 저하로 이어진다.

 

Posted by pat98

Database Generating Large Amount Of Redo After Applying Jan 2025 DBRU (37260974) (Doc ID 3073478.1)

 

19.26 (2025년 1월) 패치를 적용하고 난 후 부터 이전과 달리 redolog 발생량이 급격하게 증가하는 문제 발생

 

- 버그는 아니며 19.26 부터 DB_LOST_WRITE_PROTECT 값이 AUTO 로 셋팅되면서 발생하는 문제임.

 

기존과 같이 NONE 으로 관리하려면 아래와 같이 조치해준다.

(재기동 필요없음. 현재 세션부터 영향받음)

 

SQL> alter system set db_lost_write_protect='NONE';

 

특히 dataguard 를 운영하는 환경에서는 고민이 필요한 값이 되겠다.

 

 

 

Posted by pat98

Exadata Server는 password 및 authentication policy 의 변경 및 기타 보안 설정을 위해 host_access_control tool 을 이용할 것을 권장하고 있다.

 

Exadata Database Machine Security Guide for Oracle Exadata - https://docs.oracle.com/en/engineered-systems/exadata-databasemachine/dbmsq/managing-password-and-authentication-policies.html
. . .
3.4 Managing Password and Authentication Policies
Each Oracle Exadata server contains the host_access_control utility (/opt/oracle.cellos/host_access_control), which provides simple interfaces to view and modify the password and authentication policies.
Oracle recommends using the host_access_control utility to view and modify the password and authentication policies. You may perform customizations outside the scope of the host_access_control utility at your own cost and risk.

=========================================================================  

[root@db01 oracle.cellos]# ./host_access_control 
Usage: [-q|--quiet] command [argument]
     command is one of:
     access           - User access from hosts, networks, etc.
     access-ilomweb   - Control overall access from the ILOM Web Remote Console device (tty1)
     access-export    - Export access rules to a file
     access-import    - Import access rules via a supplied file
     account-disable  - Account disable days after password expiration
     apply-defaults   - Apply either secure or factory defaults for some settings
     audit-rules      - Import audit rules via a supplied file
     auditd-options   - Options for auditd
     banner           - Login banner management
     fips-mode        - Kernel FIPS mode control
     grub-password    - GRUB password control
     idle-timeout     - Shell and SSH client idle timeout control
     ilom-configure   - ILOM settings control
     ilom-password    - ILOM root user password control
     kernel-dump      - kdump (kernel dump file creation) control
     maint-password   - Diagnostic ISO shell and Rescue password control
     nfs-server       - Control the nfs-server and rpcbind services and sockets
     pam-auth         - PAM authentication settings: pam_faillock deny and unlock_time, password strength, and password history values
     password-aging   - Adjust current users' password aging
     password-policy  - Adjust the system's password age policies
     rootssh          - Root user SSH access control
     selinux          - Configuration for SELinux
     session-limit    - Limit the number of allowed concurrent sessions
     ssh-access       - Allow or deny user and group SSH access
     sshciphers       - SSH cipher support control
     ssh-hostkeys     - SSH server HostKey control
     ssh-kexalgos     - SSHD server KexAlgorithms
     ssh-listen       - Control the SSHD service optional ListenAddress entries
     ssh-macs         - SSH supported MACs
     ssh-maxsessions  - SSH MaxSessions control
     ssh-moduli       - Trim out short SSH moduli
     ssh-pwauth       - Control the sshd PawwordAuthentication setting
     ssh-service      - Control the SSHD service and active connections
     ssh-x11forward   - Control the SSHD X11Forwarding setting
     sudo             - User privilege control through sudo
     sudodeny         - Manage the Exadata sudo users deny list
     capture-service  - Maintenance command: capture the configured state of the given service, storing the setting in persistent storage.
     get-runtime      - Maintenance command: import system configuration settings, storing them in host_access_control parameter settings files.
     restore          - Maintenance command: reapply settings previously set by this utility, as in after an upgrade
     (command help by using --help after command (no help with restore command))
     The optional -q|--quiet option is used for silent/noprompting for use with cellcli and must be the first arg.

 

=========================================================================  

간단하게만 나와서 무식하게 Exadata 의 내부 접근관리 Tool 인 host_access_control  의 세부옵션에 대해 하나씩 다 확인해 봄.
=========================================================================  
[root@db01 oracle.cellos]# ./host_access_control access
usage: host_access_control [-h] [-s] [-a] [-r] [-u username] [-o list]
                           [--close] [--open]

User/Host Access Control

optional arguments:
  -h, --help            show this help message and exit
  -s, --status          Display current access rules
  -a, --add             Add (or replace) an allow rule for a user at origins
  -r, --remove          Remove an allow rule for a user
  -u username, --user username
                        user for access. Must be a valid username to the local
                        system
  -o list, --origins list
                        Comma separated list (no spaces) of origins for access
                        from. hostnames, networks, domains, etc. ALL for
                        unrestricted. Console and ILOM devices (ttyS0, tty1)
                        already included. Valid IPV4 and IPV6 host and network
                        formats are supported Examples: IPV4 host ip addr:
                        10.100.200.3 IPV4 network-cidr: 10.0.0.0/8 IPV4
                        network-bitmask: 10.0.0.0/255.0.0.0 IPV6 host ip addr:
                        fe80::0202:b3ff:fe1e:8329 IPV6 network addr:
                        2001:cdba:9abc::5678 IPV6 network-cidr:
                        2001:db8:a0b:12f0::1/64 hostname: foo.bar.org dns
                        domain: .foo.bar.org (See access.conf manpage)
  --close               Set or reset all access rules to a mostly closed
                        access ruleset
  --open                Set or reset all access rules to an open access
                        ruleset

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control access-ilomweb
usage: host_access_control [-h] [-s] [-l] [-u]

ILOM Web Console Access Control

optional arguments:
  -h, --help    show this help message and exit
  -s, --status  Disable ILOM Web console access
  -l, --lock    Disable ILOM Web console access
  -u, --unlock  Do not disable the ILOM Web Console access

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control access-export
usage: host_access_control [-h] [-f EXPORT_FILE]

Export Exadata Host Access Rules to a file.

optional arguments:
  -h, --help            show this help message and exit
  -f EXPORT_FILE, --file EXPORT_FILE
                        Export Exadata Host Access Rules to the specified
                        file. (Specify the full, absolute file path)

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control access-import
usage: host_access_control [-h] [-f IMPORT_FILE]

Import a file into the Exadata Host Access Rules.

optional arguments:
  -h, --help            show this help message and exit
  -f IMPORT_FILE, --file IMPORT_FILE
                        Import the given file into Exadata Host Access Rules.
                        (Specify the full, absolute file path)

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control account-disable
usage: host_access_control [-h] [-d DAYS] [--defaults] [--secdefaults] [-s]

Description - Inactive Account Disable Days Control:
              Sets or gets the INACTIVE parameter in /etc/default/useradd,
              which is the number of days after a password expires until
              the account is permanently disabled. A value of 0 (**)
              disables the account as soon as the password has expired,
              and a value of -1 disables the feature.
              (**Exadata secure default)

optional arguments:
  -h, --help            show this help message and exit
  -d DAYS, --days DAYS  The number of days before expiring an account. Input
                        limited to -1 or from 0 to 36500, -1 disables, 0
                        disables immediately.
  --defaults            Set useradd INACTIVE parameter to 35, *Exadata factory
                        default value
  --secdefaults         Set useradd INACTIVE parameter to **Exadata secure
                        default value
  -s, --status          Display current INACTIVE parameter setting

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control apply-defaults
usage: host_access_control [-h] [--strict_compliance_only] [--defaults]
                           [--status] [--info]

Apply secure default settings for several commands

optional arguments:
  -h, --help            show this help message and exit
  --strict_compliance_only
                        apply secure defaults for each supported command
  --defaults            apply factory defaults for each supported command
  --status              get --status for each supported command
  --info                list commands supported by this control and an
                        explanation for settings applied with the apply-
                        defaults command

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control audit-rules
[2025-05-07 17:37:05 +0900] [WARNING] [IMG-SEC-0029] Command is not permitted on this system. audit-rules is not authorized.

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control auditd-options
usage: host_access_control [-h] [-p string] [-a string] [--defaults] [-s]

Auditd options control -
    This control is to set options for auditd.
    See the auditd.conf (5) manpage for details.
    The "exec" action must be followed by a /path-to-script enclosed in quotes:
    "exec /usr/local/bin/script"
    The script must exist or auditd service will fail to start.
    --space_left_action and --admin_space_left_action options may be combined
    A reboot is required to effect this change.

optional arguments:
  -h, --help            show this help message and exit
  -p string, --space_left_action string
                        set the action for space_left_action, ignore, syslog,
                        rotate, email, exec, suspend, single, halt.
  -a string, --admin_space_left_action string
                        set the action for admin_space_left_action, ignore,
                        syslog, rotate, email, exec, suspend, single, halt.
  --defaults            Set auditd options to Exadata default values:
                        --space_left_action EMAIL --admin_space_left_action
                        SUSPEND
  -s, --status          Display the current settings for this control.

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control banner
usage: host_access_control [-h] [-f IMPORT_FILE] [-r] [-s]

Import or Remove a login banner.

optional arguments:
  -h, --help            show this help message and exit
  -f IMPORT_FILE, --file IMPORT_FILE
                        Will import the given file into: /etc/issue,
                        /etc/issue.net, and /etc/motd (Specify the absolute
                        file path)
  -r, --remove          Remove the current login banner (if any)
  -s, --status          Display current login banner (if any)

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control fips-mode
usage: host_access_control [-h] [-e] [-d] [-s] [--info]

kernel FIPS mode control -
    NOTE:
    FOR SSH/SSHD FIPS compliance,
    run the "host_access_controlsh-macs --secdefaults" command

optional arguments:
  -h, --help     show this help message and exit
  -e, --enable   enable kernel FIPS mode
  -d, --disable  disable kernel FIPS mode
  -s, --status   display the current kernel FIPS mode
  --info         information regarding enabling kernel FIPS mode

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control grub-password
New GRUB password: 
[2025-05-07 17:38:13 +0900] [WARNING] [IMG-SEC-002F] Program exit from KeyboardInterrupt 

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control idle-timeout
usage: host_access_control [-h] [-c CLIENT] [-i CLIENTALIVEINTERVAL]
                           [-m CLIENTALIVECOUNTMAX] [-l SHELL]
                           [-t STOPIDLESESSIONSEC] [--defaults] [-s]

Idle Timeout Settings Control

optional arguments:
  -h, --help            show this help message and exit
  -c CLIENT, --client CLIENT
                        SSH client idle timeout. Option retained for backwards
                        compatibility. Number of seconds of inactivity on an
                        ssh connection before the connection is terminated.
                        Sets ClientAliveCountMax to 1 and ClientAliveInterval
                        to the given --client value. Input is limited from 0
                        to 31557600 (one year) (*Exadata factory default is
                        600 (10m))
  -i CLIENTALIVEINTERVAL, --clientaliveinterval CLIENTALIVEINTERVAL
                        ClientAliveInterval, SSH client idle timeout. Number
                        of seconds of inactivity before a message is sent to
                        request a response from the client. Input is limited
                        from 0 (disabled) to 31557600 (one year) (*Exadata
                        factory default is 600 (10m))
  -m CLIENTALIVECOUNTMAX, --clientalivecountmax CLIENTALIVECOUNTMAX
                        ClientAliveCountMax, SSH client idle timeout. The
                        number of client alive messages which may be sent
                        without sshd receiving any messages back from the
                        client. Input is limited from 0 to 100000 (*Exadata
                        factory default is 1)
  -l SHELL, --shell SHELL
                        Shell idle timeout. Number of seconds of no input
                        before the shell will terminate. Input is limited to 0
                        or from 300 to 31557600 (one year) (*Exadata factory
                        default is 14400 (4h))
  -t STOPIDLESESSIONSEC, --stopidlesessionsec STOPIDLESESSIONSEC
                        systemd-logind StopIdleSessionSec. Number of seconds
                        of idle time before a session is terminated. Input is
                        limited to the word infinity, or from 60 to 9999999
                        (*Exadata factory default is infinity)
  --defaults            Set all idle-timeout values to *Exadata factory
                        defaults
  -s, --status          Display current idle timeout settings

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control ilom-configure
usage: host_access_control [-h] [--get GET] [--set SET [SET ...]]

ILOM configuration controls.

optional arguments:
  -h, --help           show this help message and exit
  --get GET            Show a supported ILOM parameter value.
  --set SET [SET ...]  Set a supported ILOM parameter value.

Supported ILOM parameters:
    cli-timeout [argument] (int), value in minutes from 0 to 1440
                  
=========================================================================
[root@db01 oracle.cellos]# ./host_access_control ilom-password
New ILOM root user password: 
[2025-05-07 17:39:08 +0900] [WARNING] [IMG-SEC-002F] Program exit from KeyboardInterrupt 

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control kernel-dump
[2025-05-07 17:39:30 +0900] [WARNING] [IMG-SEC-0029] Command is not permitted on this system. kernel-dump is not authorized.

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control maint-password
usage: host_access_control [-h] [-d] [-r] [-p PW_VARIABLE] [--reset]

Set or update the diagnostic shell or rescue password.

optional arguments:
  -h, --help            show this help message and exit
  -d, --diag            Set or update the Diagnostic Shell password
  -r, --rescue          Set or update the Rescue password
  -p PW_VARIABLE, --pass PW_VARIABLE
                        Optionally supply a password (via a variable). (export
                        EXADATA_RESCUE_PASSWORD='password') Specify the
                        variable name only, no $ (--pass
                        EXADATA_RESCUE_PASSWORD). If --pass is not supplied, a
                        password input prompt will be presented. Permitted
                        passwords are 8-16 alphanumeric characters
  --reset               Reset the Diagnostic Shell and Rescue passwords to
                        Factory Defaults

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control nfs-server
usage: host_access_control [-h] [-e] [-d] [-s]

Description - Enable or disable the NFS Server services. This command will
operate on each of the following units: nfs-server.service, rpcbind.service,
rpcbind.socket. Besides enabling or disabling the units it will unmask and
mask the units. Masking of the NFS Server units is a security precaution.

optional arguments:
  -h, --help     show this help message and exit
  -e, --enable   Enable/Unmask NFS Server services and socket
  -d, --disable  Disable/Mask NFS Server services and socket
  -s, --status   Current NFS Server services and socket setting

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control pam-auth
usage: host_access_control [-h] [-d DENY] [-i INTERVAL] [-l UNLOCK_TIME]
                           [-p list] [-q PWQUALITY] [-r REMEMBER] [-e ENFORCE]
                           [--defaults] [--secdefaults] [-s]

PAM Authentication Settings Control

optional arguments:
  -h, --help            show this help message and exit
  -d DENY, --deny DENY  Number of consecutive failed login attempts
                        within {interval} before an account will be locked.
                        Input is limited to from 1 to 10.
                        This is the pam_faillock deny parameter.
                        *Exadata factory default is 3 
  -i INTERVAL, --interval INTERVAL
                        The number of seconds during which the
                        consecutive authentication failures must happen for the user account to be
                        locked out.
                        ***Note: Setting to 0 disables LOCKING.
                        This is the pam_faillock fail_interval parameter.
                        *Exadata factory default is 900 (15 minutes) 
  -l UNLOCK_TIME, --lock UNLOCK_TIME
                        Number of seconds (integer) an account will be
                        locked due to {deny} failed login attempts within {interval}.
                        Input is limited to from 0 to 31557600 (one year).
                        ***Note: Setting to 0 disables LOCKING by setting
                        interval to 0. This is for compatibility with the
                        older pam_tally2 method and this control.
                        This is the pam_faillock unlock_time parameter
                        *Exadata factory default is 900 (15m)
                                              
  -p list, --passwdqc list
                        FOR SYSTEMS RUNNING ON LESS THAN OL7
                        Comma separated set of 5 values: N0,N1,N2,N3,N4
                        defining the minimum allowed length for different
                        types of password/passphrases. Each subsequent number
                        is required to be no larger than the preceding one
                        The keyword "disabled" can be used to disallow
                        passwords of a given kind regardless of their length.
                        Passwords must use three character classes. Character
                        classes for passwords are digits, lowercase letters,
                        uppercase letters, and other characters. Minimum
                        password length is 12 characters when using three
                        character classes. Minimum password length is 8
                        characters when using four character classes.
                        *Exadata factory default is 5,5,5,5,5
                        **Exadata secure default is disabled,disabled,16,12,8
                        (refer to the pam_passwdqc manpage for details)
                                              
  -q PWQUALITY, --pwquality PWQUALITY
                        FOR SYSTEMS RUNNING ON OL7 AND GREATER
                        1. EITHER A SINGLE Integer, ranging from 6 to 40,
                        defining the minimum allowed password length. Other
                        values are defaulted as noted below by the Exadata
                        defaults.
                        All classes will be required for password changes as
                        well as other checks enforced for lengths >7. For
                        lengths <8, class requirements are not used.
                        *Exadata factory default is:
                        minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
                        difok=8 maxrepeat=3 maxclassrepeat=4
                        **Exadata secure default is:
                        minlen=15 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
                        difok=8 maxrepeat=3 maxclassrepeat=4
                        2. OR A COMMA SEPARATED LIST, representing values for:
                        minlen dcredit ucredit lcredit ocredit difok maxrepeat
                        maxclassrepeat minclass maxsequence gecoscheck
                        That is an 11 integer, comma separated list.
                        To set a default value for an option, use -8888. That
                        option will not be set.
                        Example: 40,-1,-1,-1,-1,8,3,4,0,-8888,-8888
                        Example: 8,-1,-1,-1,-1,8,3,4,0,0,0
                        Example: 15,-1,-1,-1,-1,8,3,4,0,0,0
                        (refer to the pam_pwquality manpage for details)
                                              
  -r REMEMBER, --remember REMEMBER
                        The last n passwords to remember for password
                        change history.
                        Valid range is an integer from 0 to 1000.
                        *Exadata factory default is 5
                                                     
  -e ENFORCE, --enforce ENFORCE
                        Enforce for the root account the password
                        history and password quality settings.
                        "set" to add the enforce_for_root option.
                        "unset" to remove the enforce_for_root option.
                        This setting is NOT an Exadata default or secure default.
  --defaults            Set all pam-auth values to *Exadata factory defaults
  --secdefaults         Set all pam-auth values to **Exadata secure defaults
  -s, --status          Display current PAM authentication settings

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control password-aging
usage: host_access_control [-h] [-s] [-u USER] [--defaults] [--secdefaults]
                           [--policy] [-M int] [-m int] [-W int]

Description - Password Aging Control:
     Sets or displays the current password aging for interactive user accounts.
     For defining the password aging policy (used for account creation) use the
     password-policy command.

optional arguments:
  -h, --help            show this help message and exit
  -s, --status          Display current user password aging
  -u USER, --user USER  A valid interactive user's username
  --defaults            Set all password-aging values to *Exadata factory
                        defaults for all interactive users
  --secdefaults         Set all password-aging values to **Exadata secure
                        defaults for all interactive users
  --policy              Set all password-aging values to the aging policy as
                        defind by the password-policy command (or
                        /etc/login.defs) for all interactive users
  -M int, --maxdays int
                        Maximum number of days a password may be used. Input
                        limited to from 1 to 99999.
  -m int, --mindays int
                        Minimum number of days allowed between password
                        changes. Input limited to from 0 to 99999, 0 for
                        anytime.
  -W int, --warndays int
                        Number of days warning given before a password
                        expires. Input limited to from 0 to 99999.

        Any option but --defaults, --secdefaults, and --status may be combined.
       ( *Exadata factory default values)
       (**Exadata secure default values)

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control password-policy
usage: host_access_control [-h] [-s] [--defaults]
                           [--PASS_MAX_DAYS PASS_MAX_DAYS]
                           [--PASS_MIN_DAYS PASS_MIN_DAYS]
                           [--PASS_MIN_LEN PASS_MIN_LEN]
                           [--PASS_WARN_AGE PASS_WARN_AGE]

Description - Password Aging Policy Control:
     Defines and displays the password aging policies for new account creation.
     For active passord aging use the password-aging command.

optional arguments:
  -h, --help            show this help message and exit
  -s, --status          Display current password age settings
  --defaults            Set all password-policy values to *Exadata factory
                        defaults
  --PASS_MAX_DAYS PASS_MAX_DAYS
                        Maximum number of days a password may be used. Input
                        limited to -1 or from 1 to 36500, -1 disables.
  --PASS_MIN_DAYS PASS_MIN_DAYS
                        Minimum number of days allowed between password
                        changes. Input limited to -1 or from 1 to 36500, -1
                        disables.
  --PASS_MIN_LEN PASS_MIN_LEN
                        Minimum acceptable password length. Input limited to
                        from 8 to 30.
  --PASS_WARN_AGE PASS_WARN_AGE
                        Number of days warning given before a password
                        expires. Input limited to -1 or from 0 to 90. -1
                        disables.

Any option but --defaults and --status may be combined.
             (*Exadata factory default values)

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control rootssh
usage: host_access_control [-h] [-l] [-u] [-k] [--defaults] [--secdefaults]
                           [-s]

SSH PermitRootLogin Control

optional arguments:
  -h, --help     show this help message and exit
  -l, --lock     Disable root SSH access (**Exadata secure default)
  -u, --unlock   Enable root SSH access (*Exadata factory default)
  -k, --key      Enable root SSH access, but disable password authentication
                 for root (keys allowed)
  --defaults     Set value for root ssh access to *Exadata factory default
  --secdefaults  Set value for root ssh access to **Exadata secure default
  -s, --status   current root SSH access

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control selinux
usage: host_access_control [-h] [-e] [-p] [-d] [-r] [-c] [-s]

SELinux configured state control

optional arguments:
  -h, --help        show this help message and exit
  -e, --enforcing   set the SELinux state to enforcing
  -p, --permissive  set the SELinux state to permissive
  -d, --disabled    set the SELinux state to disabled
  -r, --relabel     Relabel filesystems online. A reboot is not required
  -c, --config      Display the configured SELinux state
  -s, --status      Display the current SELinux status

This control is to set the desired SELinux state.
See the selinux(8) manpage for details.
A reboot is required to effect changes.
[root@db01 oracle.cellos]# ./host_access_control session-limit
usage: host_access_control [-h] [-l LIMIT] [--defaults] [--secdefaults] [-s]

Description - Session Limits (maxlogins) Control:
    Sets or gets the '* hard maxlogins' parameter in /etc/security/limits.conf,
    which is the maximum number of logins for all users,
    (this limit does not apply to user with uid=0)
    ( *Exadata CELL factory default, 10)
    ( *Exadata DB factory default, 1000)
    (**Exadata secure default, 10)

optional arguments:
  -h, --help            show this help message and exit
  -l LIMIT, --limit LIMIT
                        The number of allowed concurrent login sessions. Input
                        limited to -1 (no limit) or from 0 to 10000.
  --defaults            Set maxlogins parameter to *Exadata factory default
                        value
  --secdefaults         Set maxlogins parameter to **Exadata secure default
                        value
  -s, --status          Display current maxlogins parameter setting

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control ssh-access
usage: host_access_control [-h] [-a] [-d] [-u USER] [-g GROUP] [-e] [-s]

Description:
       Adds allow or deny rules to the SSH server configuration.
       The --erase option REMOVES all access rules. --allow or --deny
       OVERWRITES existing rules.
       NOTE: No option will disturb Match Blocks.
       See sshd_config(5) for more information on
       AllowUsers, DenyUsers, AllowGroups, DenyGroups

       NOTE: For controlling SSH access to the root account, use the
             `host_access_control rootssh` command

optional arguments:
  -h, --help            show this help message and exit
  -a, --allow           Allow one or more users or groups SSH access.
  -d, --deny            Deny one or more users or groups SSH access.
  -u USER, --user USER  Comma separated list of usernames (no spaces). The
                        username may be local or take the form USER@HOST. See
                        PATTERNS in ssh_config(5) for more information on
                        username patterns. NOTE: No input verification is done
                        to validate actual usernames.
  -g GROUP, --group GROUP
                        Comma separated list of groupnames (no spaces). See
                        PATTERNS in ssh_config(5) for more information on
                        groupname patterns. NOTE: No input verification is
                        done to validate actual groupnames.
  -e, --erase           Remove the configured SSH allow and deny access rules.
  -s, --status          Display the configured SSH allow or deny access rules.

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control sshciphers
usage: host_access_control [-h] [-r] [-c] [-b] [-e] [-d] [-p list]
                           [--defaults] [-s]

SSH cipher control

optional arguments:
  -h, --help            show this help message and exit
  -r, --server          Applies to the SSH server configuration
  -c, --client          Applies to the system-wide SSH client configuration
  -b, --both            Applies to both the SSH server and system-wide SSH
                        client configurations
  -e, --enable          Enable support for the given cipher list
  -d, --disable         Disable support for the given cipher list
  -p list, --ciphers list
                        Comma-separated list (no spaces) of ciphers the action
                        applies to. Must be one or more of:
                        aes256-ctr,aes192-ctr,aes128-ctr
  --defaults            Apply the *Exadata factory default configuration for
                        this control
  -s, --status          Display the current SSH Cipher settings

 *Exadata factory default:    aes256-ctr,aes192-ctr,aes128-ctr
                              for both server and client
  Example:
     sshciphers --server --disable --ciphers aes128-ctr
     sshciphers --both --disable --ciphers aes128-ctr,aes192-ctr,aes256-ctr
              
=========================================================================
[root@db01 oracle.cellos]# ./host_access_control ssh-hostkeys
usage: host_access_control [-h] [-a] [-r] [-k list] [--defaults] [-s]

SSH HostKeys control

optional arguments:
  -h, --help            show this help message and exit
  -a, --add             Add given HostKey entries to the SSHD configuration
  -r, --remove          Remove given HostKey entries from the SSHD
                        configuration
  -k list, --hostkeys list
                        Comma-separated list (no spaces) of HostKeys files the
                        action applies to.
  --defaults            Apply the *Exadata default configuration for this
                        control
  -s, --status          Display the current SSH HostKey entries

 *Exadata default:      /etc/ssh/ssh_host_rsa_key,/etc/ssh/ssh_host_ecdsa_key
  Example:
    ssh-hostkeys --remove --hostkeys /etc/ssh/ssh_host_rsa_key
    ssh-hostkeys --add --hostkeys \
      /etc/ssh/ssh_host_ecdsa_key,/etc/ssh/ssh_host_rsa_key
             
=========================================================================
[root@db01 oracle.cellos]# ./host_access_control ssh-kexalgos
usage: host_access_control [-h] [-e] [-d] [-k list] [--defaults] [-s] [--info]

SSHD KexAlgorithms control

optional arguments:
  -h, --help            show this help message and exit
  -e, --enable          Enable support for the given KexAlgorithm list
  -d, --disable         Disable support for the given KexAlgorithm list
  -k list, --kexalgos list
                        Comma-separated list (no spaces) of KexAlgorithms the
                        action applies to. Supprted KexAlgorithms are shown
                        with the --info option.
  --defaults            Apply the *Exadata default configuration for this
                        control
  -s, --status          Display the current SSH KexAlgorithms settings
  --info                Display the supported KexAlgorithms by the SSH Server

  *Exadata default:          
diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
diffie-hellman-group18-sha512
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521

  Example:
    ssh-kexalgos --disable --kexalgos ecdh-sha2-nistp521
    ssh-kexalgos --enable --kexalgos
    diffie-hellman-group14-sha256,diffie-hellman-group16-sha512

=========================================================================              
[root@db01 oracle.cellos]# ./host_access_control ssh-listen
usage: host_access_control [-h] [-a] [-r] [--ipaddr list] [-s]

ssh-listen control

optional arguments:
  -h, --help     show this help message and exit
  -a, --add      Add given IPv4 or IPv6 address(es) to the sshd_config
                 optional ListenAddress entries
  -r, --remove   Remove given IPv4 or IPv6 address(es) from the sshd_config
                 optional ListenAddress entries
  --ipaddr list  Specify one or more comma separated IPv4 or IPv6 addresses
                 example: 10.100.200.3,192.168.220.12,2001:cdba:9abc::5678
  -s, --status   Configured sshd_config ListenAddress entries

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control ssh-macs
usage: host_access_control [-h] [-r] [-c] [-b] [-e] [-d] [-m list]
                           [--defaults] [--secdefaults] [-s] [--info]

SSH MACs control

optional arguments:
  -h, --help            show this help message and exit
  -r, --server          Applies to the SSH server configuration
  -c, --client          Applies to the system-wide SSH client configuration
  -b, --both            Applies to both the SSH server and system-wide SSH
                        client configurations
  -e, --enable          Enable support for the given MAC list
  -d, --disable         Disable support for the given MAC list
  -m list, --macs list  Comma-separated list (no spaces) of MACs the action
                        applies to. Supprted MACs are shown with the --info
                        option.
  --defaults            Apply the *Exadata default configuration for this
                        control
  --secdefaults         Apply the **Exadata secure default configuration for
                        this control
  -s, --status          Display the current SSH MACs settings
  --info                Display the supported MACs by the SSH Server

 *Exadata default:         hmac-sha2-512,hmac-sha2-256,hmac-sha1 for both server and client
**Exadata secure default:  hmac-sha2-512,hmac-sha2-256 for both server and client
  Example:
     ssh-macs --server --disable --macs hmac-sha1
     ssh-macs --both --disable --macs hmac-sha2-512,hmac-sha2-256

=========================================================================              
[root@db01 oracle.cellos]# ./host_access_control ssh-maxsessions
usage: host_access_control [-h] [-n NUMBER] [--defaults] [-s]

SSHD MaxSessions Control

optional arguments:
  -h, --help            show this help message and exit
  -n NUMBER, --number NUMBER
                        MaxSessions. The maximum number of open sessions
                        permitted per network connection. The Exadata default
                        is 10.
  --defaults            Set value for SSH maximum sessions to the Exadata
                        factory default
  -s, --status          Show the current SSH maximum sessions setting

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control ssh-moduli
usage: host_access_control [-h] [-t] [-s]

SSHD moduli trim control

optional arguments:
  -h, --help    show this help message and exit
  -t, --trim    Trim out short (<2048) sshd moduli from /etc/ssh/moduli. There
                is no undo or restore from this action. A one-time original
                backup is saved to
                /etc/exadata/security/keepfiles/sshd_moduli.orig
  -s, --status  Print the status of configured short sshd moduli.

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control ssh-pwauth
usage: host_access_control [-h] [-d] [-e] [--defaults] [-s]

SSHD PasswordAuthentication Control

optional arguments:
  -h, --help     show this help message and exit
  -d, --disable  Disable SSH password authenticated access
  -e, --enable   Enable SSH password authenticated access (*Exadata factory
                 default)
  --defaults     Set value for SSH password authenticated access to the
                 *Exadata factory default
  -s, --status   Show the current SSH password authenticated access setting

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control ssh-service
usage: host_access_control [-h] [-e] [-d] [-k] [-s]

SSH service control

optional arguments:
  -h, --help          show this help message and exit
  -e, --enable        Enable SSH service (*Exadata default)
  -d, --disable       Disable SSH service
  -k, --disable-kill  Disable SSH service AND terminate all active sessions
  -s, --status        Current SSH service setting

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control ssh-x11forward
usage: host_access_control [-h] [-d] [-e] [--defaults] [-s]

SSH X11Forwarding Control

optional arguments:
  -h, --help     show this help message and exit
  -d, --disable  disable SSHD X11Forwarding (*Exadata factory default)
  -e, --enable   enable SSHD X11Forwarding
  --defaults     Set value for X11Forward to *Exadata factory default
  -s, --status   current SSH X11Forward setting

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control sudo
usage: host_access_control [-h] [-a] [-r] [-u username] [-t username] [-n]
                           [-s]

sudoers rules control

optional arguments:
  -h, --help            show this help message and exit
  -a, --add             Add a sudo rule for user to privilege escalate to
                        t(arget)user
  -r, --remove          Remove sudo rule(s) for user (if no --tuser specified
                        then all rules for --user will be removed)
  -u username, --user username
                        Source user for privilege escalation. User will be
                        created if not found.
  -t username, --tuser username
                        Target user to privilege escalate to. Must be a valid
                        username to the local system.
  -n, --nopasswd        Add the NOPASSWD: option to added rule.
  -s, --status          Display sudo rules for user

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control sudodeny
usage: host_access_control [-h] [-a] [-r] [-s] [-u list]

sudo users deny list control

optional arguments:
  -h, --help            show this help message and exit
  -a, --add             Add one or more usernames to the sudoer users deny
                        list
  -r, --remove          Remove one or more usernames from the sudoer users
                        deny list
  -s, --status          Display if one or more usernames are on the sudo user
                        deny list
  -u list, --user list  Comma separated list of usernames (no spaces). The
                        usernames need not be existing users on the system.

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control capture-service
usage: host_access_control [-h] [--service SYSTEM_SERVICE]

capture-service control

optional arguments:
  -h, --help            show this help message and exit
  --service SYSTEM_SERVICE
                        Capture the given service configured state for use
                        with the restore command. (only .service units are
                        supported for systemd)

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control get-runtime
[2025-05-07 17:48:10 +0900] [INFO] [IMG-SEC-0043] Get runtime complete 

=========================================================================
[root@db01 oracle.cellos]# ./host_access_control restore
[2025-05-07 17:49:18 +0900] [INFO] [IMG-SEC-0003] Restore complete

Posted by pat98

sqlplus / as sysasm

SPOOL ASM1_GENERIC_ASM_METADATA.html
SET MARKUP HTML ON
SET ECHO ON
SET PAGESIZE 200
ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';
SELECT 'THIS ASM REPORT WAS GENERATED AT: ==)> ' , SYSDATE " " FROM DUAL;
SELECT 'INSTANCE NAME: ==)> ' , INSTANCE_NAME " " FROM V$INSTANCE;
SELECT 'HOSTNAME ASSOCIATED WITH THIS ASM INSTANCE: ==)> ' , MACHINE " " FROM V$SESSION WHERE PROGRAM LIKE '%SMON%';
SELECT * FROM V$INSTANCE;
SELECT * FROM GV$INSTANCE;
SELECT * FROM V$ASM_DISKGROUP;
SELECT GROUP_NUMBER, DISK_NUMBER, MOUNT_STATUS, HEADER_STATUS, MODE_STATUS, STATE, OS_MB, TOTAL_MB, FREE_MB, NAME, FAILGROUP, PATH
FROM V$ASM_DISK ORDER BY GROUP_NUMBER, FAILGROUP, DISK_NUMBER;
SELECT * FROM V$ASM_DISK ORDER BY GROUP_NUMBER,DISK_NUMBER;
SELECT SUBSTR(D.NAME,1,16) AS ASMDISK, D.MOUNT_STATUS, D.STATE,
DG.NAME AS DISKGROUP FROM V$ASM_DISKGROUP DG, V$ASM_DISK D
WHERE DG.GROUP_NUMBER = D.GROUP_NUMBER;
SELECT * FROM V$ASM_CLIENT;
SELECT DG.NAME AS DISKGROUP, SUBSTR(C.INSTANCE_NAME,1,12) AS INSTANCE,
SUBSTR(C.DB_NAME,1,12) AS DBNAME, SUBSTR(C.SOFTWARE_VERSION,1,12) AS SOFTWARE,
SUBSTR(C.COMPATIBLE_VERSION,1,12) AS COMPATIBLE
FROM V$ASM_DISKGROUP DG, V$ASM_CLIENT C
WHERE DG.GROUP_NUMBER = C.GROUP_NUMBER;
SELECT * FROM V$ASM_ATTRIBUTE;
SELECT * FROM V$ASM_OPERATION;
SELECT * FROM GV$ASM_OPERATION;
SELECT * FROM V$VERSION;
SELECT * FROM V$ASM_ACFSSNAPSHOTS;
SELECT * FROM V$ASM_ACFSVOLUMES;
SELECT * FROM V$ASM_FILESYSTEM;
SELECT * FROM V$ASM_VOLUME;
SELECT * FROM V$ASM_VOLUME_STAT;
SELECT * FROM V$ASM_USER;
SELECT * FROM V$ASM_USERGROUP;
SELECT * FROM V$ASM_USERGROUP_MEMBER;
SELECT * FROM V$ASM_DISK_IOSTAT;
SELECT * FROM V$ASM_DISK_STAT;
SELECT * FROM V$ASM_DISKGROUP_STAT;
SELECT * FROM V$ASM_TEMPLATE;

SHOW PARAMETER

SHOW SGA

!echo "SELECT '" > /tmp/GPNPTOOL.SQL 2> /dev/null
! $ORACLE_HOME/bin/gpnptool get >> /tmp/GPNPTOOL.SQL 2>> /dev/null
!echo "' FROM DUAL;" >> /tmp/GPNPTOOL.SQL 2>> /dev/null
! cat /tmp/GPNPTOOL.SQL
SET ECHO OFF

--DISPLAYS INFORMATION ABOUT THE CONTENTS OF THE SPFILE.
SELECT * FROM V$SPPARAMETER ORDER BY 2;
SELECT * FROM GV$SPPARAMETER ORDER BY 3;

--DISPLAYS INFORMATION ABOUT THE INITIALIZATION PARAMETERS THAT ARE CURRENTLY IN EFFECT IN THE INSTANCE.
SELECT * FROM V$SYSTEM_PARAMETER ORDER BY 2;
SELECT * FROM GV$SYSTEM_PARAMETER ORDER BY 3;

-- ACFS VIEWS

SELECT * FROM V$ASM_ACFS_ENCRYPTION_INFO;
SELECT * FROM V$ASM_ACFSREPL;
SELECT * FROM V$ASM_ACFSREPLTAG;
SELECT * FROM V$ASM_ACFS_SEC_ADMIN;
SELECT * FROM V$ASM_ACFS_SEC_CMDRULE;
SELECT * FROM V$ASM_ACFS_SEC_REALM;
SELECT * FROM V$ASM_ACFS_SEC_REALM_FILTER;
SELECT * FROM V$ASM_ACFS_SEC_REALM_GROUP;
SELECT * FROM V$ASM_ACFS_SEC_REALM_USER;
SELECT * FROM V$ASM_ACFS_SEC_RULE;
SELECT * FROM V$ASM_ACFS_SEC_RULESET;
SELECT * FROM V$ASM_ACFS_SEC_RULESET_RULE;
SELECT * FROM V$ASM_ACFS_SECURITY_INFO;
SELECT * FROM V$ASM_ACFSTAG;

-- ASM AUDIT VIEWS

SELECT * FROM V$ASM_AUDIT_CLEAN_EVENTS;
SELECT * FROM V$ASM_AUDIT_CLEANUP_JOBS;
SELECT * FROM V$ASM_AUDIT_CONFIG_PARAMS;
SELECT * FROM V$ASM_AUDIT_LAST_ARCH_TS;

-- ASM ESTIMATE VIEW

SELECT * FROM V$ASM_ESTIMATE;
SELECT * FROM GV$ASM_ESTIMATE;

-- SPARSE Diskgroups VIEW

SELECT * FROM V$ASM_DISK_SPARSE;
SELECT * FROM V$ASM_DISKGROUP_SPARSE;

-- FLEX Diskgroup Info.

set lines 300
SELECT * FROM V$ASM_FILEGROUP;
SELECT FILEGROUP_NUMBER, file_type, NAME, VALUE FROM V$ASM_FILEGROUP_PROPERTY;

SPOOL OFF

EXIT

Posted by pat98

2025. 4. 22. 16:00 오라클

Exadata OECA 5.2.3


OECA 5.2.3 버전이 나와서 올려본다.

2025년 4월11일 Version

접속이 안되는 분들은 사용하시길

 

OECA523.zip
5.24MB

Posted by pat98

Critical Patch Update (CPU) Program Apr 2025 Patch Availability Document (DB-only) (Doc ID 3070732.1)

패치작업 19.27.0.0.250415 (GI RU 37641958 )

Database Patch Set Update : 19.27.0.0.250415 (37642901)
OCW Patch Set Update      : 19.27.0.0.250415 (37654975)
ACFS Patch Set Update     : 19.27.0.0.250415 (37643161)
Tomcat Release Update     : 19.0.0.0.0       (37762426)
DBWLM Release Update      : 19.0.0.0.0       (36758186)

Oracle Grid Infrastructure Patch Set Update 19.27.0.0.250415 
-------------------------------------
GI_HOME, ORACLE_HOME 을 개별로 각각 할때

- grid 유저
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patch/37641958/37642901
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patch/37641958/37654975
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patch/37641958/37643161
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patch/37641958/36758186
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patch/37641958/37762426

- oracle 유저
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patch/37641958/37642901
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/patch/37641958/37654975

(oracle)
$ <ORACLE_HOME>/bin/srvctl stop home -o <ORACLE_HOME> -s <status file location> -n <node name>

(root 유저)
export GI_HOME=/u01/app/19.0.0.0/grid
$GI_HOME/crs/install/rootcrs.sh -prepatch 

(grid 유저)
export GI_HOME=/u01/app/19.0.0.0/grid
cd /u01/patch
$GI_HOME/OPatch/opatch apply -oh $GI_HOME -local /u01/patch/37641958/37654975 -silent
$GI_HOME/OPatch/opatch apply -oh $GI_HOME -local /u01/patch/37641958/37643161 -silent
$GI_HOME/OPatch/opatch apply -oh $GI_HOME -local /u01/patch/37641958/37642901 -silent
$GI_HOME/OPatch/opatch apply -oh $GI_HOME -local /u01/patch/37641958/36758186 -silent
$GI_HOME/OPatch/opatch apply -oh $GI_HOME -local /u01/patch/37641958/37762426 -silent

(oracle 유저)
export ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
cd /u01/patch
./37641958/37654975/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /u01/patch/37641958/37654975 -silent
$ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /u01/patch/37641958/37642901 -silent
./37641958/37654975/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME 

(root 유저)
export GI_HOME=/u01/app/19.0.0.0/grid
$GI_HOME/rdbms/install/rootadd_rdbms.sh
$GI_HOME/crs/install/rootcrs.sh -postpatch 

(oracle)
$ <ORACLE_HOME>/bin/srvctl start home -o <ORACLE_HOME> -s <status file location> -n <node name> 

- Loading Modified SQL Files into the Database
sqlplus /nolog
SQL> conect / as sysdba
SQL> startup
SQL> quit
cd $ORACLE_HOME/OPatch
./datapatch -verbose

### [롤백하는 경우] ###########

(oracle)
$ <ORACLE_HOME>/bin/srvctl stop home -o <ORACLE_HOME> -s <status file location> -n <node name>

GI Home
(root로)
$GI_HOME/crs/install/rootcrs.sh -prepatch -rollback

(grid 유저로)
export GI_HOME=/u01/app/19.0.0.0/grid
cd /u01/install
$GI_HOME/OPatch/opatch nrollback -local -id 37654975,37643161,37642901,36758186,37762426 -oh $GI_HOME -silent

(oracle 유저로)
export ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
cd /u01/install
./37641958 /37654975/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME 
$ORACLE_HOME/OPatch/opatch nrollback -local -id 37654975,37642901 -oh /u01/app/oracle/product/19.0.0.0/dbhome_1 -silent
./37641958 /37654975/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME

Run post script
(root로)
export GI_HOME=/u01/app/19.0.0.0/grid
$GI_HOME/rdbms/install/rootadd_rdbms.sh
$GI_HOME/crs/install/rootcrs.sh -postpatch -rollback

(oracle)
$ <ORACLE_HOME>/bin/srvctl start home -o <ORACLE_HOME> -s <status file location> -n <node name>

sqlplus /nolog
SQL> conect / as sysdba
SQL> startup
SQL> quit
cd $ORACLE_HOME/OPatch
./datapatch -verbose

Posted by pat98


Posted by pat98

퇴근길에 사이버트럭 목격!!

신기해서 정착중에 찍음.

시골동네라 전기차도 보기 힘든데 내 바로 앞에 똬악..

 

무지하게 크고 장갑차 보는줄 알았다.

역시 F150 버금가는 상남자의 트럭

Posted by pat98

현재 애틀랜타의 한 시골마을에 와 있다.

 

기름진거 한번 먹어줘야 하길래 방문.

시골이라 줄서는거 없어 좋다.

 

햄버거가 고급음식도 아니고 전반적으로 미국물가가 미친것 같다.

돈 벌어서 다 먹는데 써야할듯..

Posted by pat98

전에는 B였는데 2025.3월 기준

인천공항 제2터미널 대한항공 모닝캄 위치는 D 이다.

난 왜 맨날 Economy 에 줄을 서서 시간낭비할까.

제발 잊지말자..ㅋㅋ

 

Posted by pat98

05-11 00:07
Flag Counter
Yesterday
Today
Total

글 보관함

최근에 올라온 글

달력

 « |  » 2025.5
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

최근에 달린 댓글