Centos7 安装oracle 11.2.0.4

荆轲刺秦王

1. 准备工作 需要下载 Oracle 11g 安装包

2.HostName修改:

hostnamectl set-hostname oracle

3. 配置hostname(本机IP映射)注意:192.168.116.129 需要换乘本地ip

vi /etc/hosts
192.168.116.129 oracle
# 测试hostname
ping -c 3 oracle

4. 切换国内 yum 源:

rm -rf /etc/yum.repos.d/*.repo #删除repo文件,或者自己备份
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache #更新缓存

5. yum 安装 unzip 软件,用来解压上传的Oracle安装文件

yum install unzip -y

6. yum 安装 vim,方便文件编辑

yum install vim -y

7. 安装依赖包 注意 不要有换行

yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++ devel make pdksh sysstat unixODBC unixODBC-devel

8. 检查依赖是否安装完整性

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel | grep "not installed"

9. 关闭 selinux

vim /etc/selinux/config

设置 SELINUX=disabled

10. 刷新 selinux

setenforce 0

11. 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

12. 修改内核参数配置文件,优化OS内核参数

vim /etc/sysctl.conf

shmall、shmmax参数要根据实际内存数进行调整,不然安装会有问题,静态安装很容易忽略kernel.shmmax为最大物理内存以2G为例kernel.shmmax=2*0.72=1.44G , 1*1024*1024*1024=1073741824byte , kernel.shmall=shmmax/4K = 268435456

在最后添加以下代码 :

fs.aio-max-nr = 1048576
fs.file-max = 6815744
# shmall、shmmax参数要根据实际内存数进行调整,不然安装会有问题,静态安装很容易忽略
# 图形化安装在检测是将会提示
# 官网建议:
kernel.shmall = 268435456
# 官网建议:以字节为单位的物理内存(RAM)大小的一半,例如物理内存为8G
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

修改完后执行使参数生效。

sysctl -p

13. 增加用户和组

groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle

添加完成后 ,查看oracle用户

id oracle

初始化oracle用户的密码

passwd oracle

14. 修改 limits.conf 限制

vi /etc/security/limits.conf

在末尾添加以下代码:

oracle  soft    nproc   2047
oracle  hard    nproc   16384
oracle  soft    nofile  1024
oracle  hard    nofile  65536
oracle  soft    stack   10240
oracle  hard    stack   10240

修改 /etc/pam.d/login

vi /etc/pam.d/login

末尾加上:

session  required   /lib64/security/pam_limits.so
session  required   pam_limits.so

修改 /etc/profile

vi /etc/profile
if [ $USER = "oracle" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fi
fi

使之生效:

source /etc/profile

15. 安装 oracle

创建目录

mkdir -p /db/app/oracle/product/11.2.0
mkdir /db/app/oracle/oradata
mkdir /db/app/oracle/oraInventory
mkdir /db/app/oracle/fast_recovery_area
chown -R oracle:oinstall /db/app/oracle
chmod -R 775 /db/app/oracle

创建 vi /etc/oraInst.loc :

inventory_loc=/db/app/oracle/oraInventory
inst_group=oinstall

修改权限:

chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc

配置 liunx 的 oracle 用户 环境变量 注意:需要切换用户

oracle用户登陆

su - oracle
vi .bash_profile
#ORACLE_HOSTNAME为主机名
export ORACLE_HOSTNAME=oracle
export ORACLE_BASE=/db/app/oracle
export ORACLE_SID=ORCL
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

以上配置完成后,建议重启系统 或分别执行以下命令:

source /home/oracle/.bash_profile
env

解压oracle压缩文件到 /db

Oracle11g 11.2.0.4 各个压缩包备注说明
安装单点的,就1和2一起解压,解压完叫database目录;
安装集群的,就先搞3,装完grid包后,再搞1和2;

1和2是数据库软件;
3是rac软件;
4是client客户端;
5是gateways;
6是example示例;
7是删除介质;

本次选择单点安装,解压:

unzip p13390677_112040_Linux-x86-64_1of7.zip && unzip p13390677_112040_Linux-x86-64_2of7.zip

注意:此刻我是在 oracle 用户目录下解压的 也就是: /home/oracle 目录下

解压完成后,登录Root,复制授权 (注意:这里根据自己目录 酌情变化)

su - root
mkdir /home/oracle/etc/
cp /home/oracle/database/response/* /home/oracle/etc/
chmod 777 /home/oracle/etc/*.rsp

# 登录oracle用户:

su – oracle
vi /home/oracle/etc/db_install.rsp
## 信息如下:
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/db/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracle
ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/db/app/oracle
oracle.install.db.InstallEdition=EE
#oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.password.ALL=oracle
DECLINE_SECURITY_UPDATES=true

16. 开始安装:

切换到 oracle 如果已经是 oracle 则不用切换:

su - oracle
cd /home/oracle/database/
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq

如果想查看安装日志,就可以新打开一个窗口,执行:

tail -f /db/app/oracle/oraInventory/logs/silentInstall2024-06-17_04-42-10PM.log

注意:这个日志地址 因人而异 需要根据自己的安装提示 找到对应目录。

注意看提示内容: As a root user, execute the following script(s):

这句话意思就是说: 以 root 用户身份执行 下面这个脚本文件.

所以 新开一个 root 用户窗口,执行:

/db/app/oracle/product/11.2.0/db_1/root.sh

老样子根据提示即可看到安装日志。

17. 增加或修改oracle的环境变量:

su  - oracle
vi ~/.bash_profile
export ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data

##使其生效

source ~/.bash_profile

18. 配置监听程序

cd /db/app/oracle/product/11.2.0/db_1/bin
./netca /silent /responseFile /home/oracle/etc/netca.rsp
[oracle@oracle bin]$ ./netca /silent /responseFile /home/oracle/etc/netca.rsp
Parsing command line arguments:Parameter "silent" = trueParameter "responsefile" = /home/oracle/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:Running Listener Control: /db/app/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENERListener Control complete.Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

启动监听: cd /db/app/oracle/product/11.2.0/db_1/bin/

lsnrctl status ###查看监听状态
[oracle@oracle bin]$ lsnrctl startLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 16-JAN-2021 22:32:49Copyright (c) 1991, 2013, Oracle.  All rights reserved.TNS-01106: Listener using listener name LISTENER has already been started
[oracle@oracle bin]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 16-JAN-2021 22:33:02Copyright (c) 1991, 2013, Oracle.  All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                16-JAN-2021 22:28:45
Uptime                    0 days 0 hr. 4 min. 17 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /db/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /db/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
The listener supports no services
The command completed successfully
[oracle@oracle bin]$ 

静默dbca建库

编辑应答文件:

注意: GDBNAME 有两处

SYSPASSWORD,SYSTEMPASSWORD,CHARACTERSET,NATIONALCHARACTERSET等需要将注释 # 号 去掉。

[oracle@oracle etc]$ vim /home/oracle/etc/dbca.rsp 
GDBNAME="orcl.oracle" 
SID="orcl"
SYSPASSWORD="oracle" 
SYSTEMPASSWORD="oracle" 
CHARACTERSET="AL32UTF8" 
NATIONALCHARACTERSET="UTF8"

然后执行:

$ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp

建库:

[oracle@oracle bin]$ cd /db/app/oracle/product/11.2.0/db_1/bin
[oracle@oracle bin]$ dbca -silent -responseFile /home/oracle/etc/dbca.rsp
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/db/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.

至此完成数据库实例的创建。

注意:如需删除实例:执行:

[oracle@oracle ~]$ dbca -silent -deleteDatabase -sourcedb orcl

19. 设置 oracle 开机启动

root 用户编辑 /etc/oratab

orcl:/db/app/oracle/product/11.2.0/db_1:N   
修改为 orcl:/db/app/oracle/product/11.2.0/db_1:Y
注:参数为Y时可通过dbstart启动数据库

root 用户编辑 vim /etc/rc.d/rc.local

添加以下内容:

su oracle -lc "/db/app/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc "/db/app/oracle/product/11.2.0/db_1/bin/dbstart"

oracle 用户 编辑dbstart :

进入 $ORACLE_HOME/bin

将 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME

分别打开两个文件找到:ORACLE_HOME_LISTNER=$1,修改为
ORACLE_HOME_LISTNER=$ORACLE_HOME,命令如下:
[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbstart
[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbshut

临时启动实例:

[oracle@oracle bin]$ pwd
/db/app/oracle/product/11.2.0/db_1/bin
# 通过dbstart 启动此实例,监听器
## ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
## Usage: ./dbstart ORACLE_HOME
[oracle@oracle bin]$ ./dbstart $ORACLE_HOME;
# oracle的进程关闭,监听器也停止;
[oracle@oracle bin]$ ./dbshut $ORACLE_HOME;
# 启动监听
[oracle@oracle bin]$ ./lsnrctl start;
# 查看监听
[oracle@oracle bin]$ ./lsnrctl status;

登录Oracle:

[oracle@oracle bin]$ pwd
/db/app/oracle/product/11.2.0/db_1/bin
[oracle@oracle bin]$ ./sqlplus /nolog
# 进入系统管理用户
SQL> conn / as sysdba
Connected to an idle instance.
# 启动oracle实例
SQL> startup;
# 启动成功
[oracle@oracle ~]$ su - oracle
Password: 
Last login: Tue Jan 19 10:04:44 CST 2021 on pts/0
Last failed login: Tue Jan 19 10:05:49 CST 2021 on pts/0
There was 1 failed login attempt since the last successful login.
[oracle@oracle ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 19 10:06:12 2021
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
SQL>  conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.Total System Global Area  764121088 bytes
Fixed Size          2257152 bytes
Variable Size         499126016 bytes
Database Buffers      255852544 bytes
Redo Buffers            6885376 bytes
Database mounted.
Database opened.
SQL> 

20. 安装过程中出现的问题

执行 startup 时出现:

ORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/db/app/oracle/product/11.2.0/db_1/dbs/initORCL.ora'

切换为 root 用户,将 /db/app/oracle/admin/orcl/pfile 目录下的 init.ora…xxx 拷贝到/db/app/oracle/product/11.2.0/db_1/dbs下,并重新命名为 initORCL.ora。

2. 出现pl/sql 连接不上数据库

需要配置 /db/app/oracle/product/11.2.0/db_1/network/admin 中 listener.ora 文件,完整配置如下:

SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = /db/app/oracle/product/11.2.0/db_1)(PROGRAM = extproc))(SID_DESC =(GLOBAL_DBNAME = ORCL)(ORACLE_HOME = /db/app/oracle/product/11.2.0/db_1)  (SID_NAME = ORCL)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))))ADR_BASE_LISTENER = /db/app/oracle

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1454275.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

服务端渲染和客户端渲染,你真的了解吗?一文全解

网页渲染有两种常见的模式:服务端渲染(SSR)和客户端渲染(CSR),这两种模式的概念、区分、优劣势、应用场景、对应的js库等等,你都门清吗?贝格前端工场带你详细了解。 一、SSR和CSR …

QT中首次添加图片资源,及新增图片资源

文章目录 简介首次添加再次新增 简介 记录一下在qt中新增图片资源遇到的问题 首次添加 再次新增 images文件夹中需要先存在这些图片 运行之后没效果,检查好几遍,最终发现需要清除项目后重新构建。 从网上的一句话来的灵感:

深入探讨JavaScript的执行机制

预编译 首先下面这段代码的执行是一个怎样的结果呢? showName(); console.log(MyName);var MyName 小陈同学function showName() {console.log(函数showName被执行); }在这段代码中我们声明了一个变量MyName和一个函数showName,调用函数,打…

【Nvidia+AI车载摄像头】超小尺寸300万像素车载环视摄像头方案

作为一家致力于成像和视觉技术的科技创新公司,于近日推出了基于安森美300万像素AR0341AT图像传感器的超小尺寸车载环视摄像头模组,可助力提高驾驶的安全指标,有效解决高速自动驾驶对卓越的HDR性能和图像质量的需求,并降低系统开发…

Linux:生产消费模型 读者写者模型

Linux:生产消费模型 & 读者写者模型 生产消费模型阻塞队列基本结构构造与析构投放任务获取任务总代码 POSIX 信号量基本概念接口 环形队列基本结构构造与析构投放任务获取任务总代码 读者写者模型读写锁 生产消费模型 生产消费模型是一种用于处理多线程之间任务…

教育培训系统(FastAdmin+ThinkPHP+Unipp)

引领学习新风尚 📚 引言:教育新篇章 随着科技的不断发展,教育形式也在不断创新与变革。教育培训系统作为这一变革的重要载体,正逐渐改变着我们的学习方式。今天,就让我们一起探索教育培训系统的魅力,看看它…

Java基础16(集合 List)

目录 一、什么是集合? 二、集合接口 三、List集合 1. ArrayList容器类 1.1 常用方法 1.1.1 增加 1.1.2 查找 int size() E get(int index) int indexOf(Object c) boolean contains(Object c) boolean isEmpty() List SubList(int fromindex,i…

再谈章子怡哽咽致谢张艺谋:你知道最走心的感谢是什么吗?

再谈章子怡哽咽致谢张艺谋:你知道最走心的感谢是什么吗? 在上一篇文章中,#李秘书讲写作#谈了近日#章子怡哽咽致谢张艺谋#这个话题,并指出一般人在什么情况下会主动感谢别人?这一节我们就讲最走心的感谢是什么&#xf…

深度学习原理

1 简介 AIGC(Artificial Intelligence Generated Content,即人工智能生成内容)是一种利用人工智能技术自动创建文本、图像、音频和视频等内容的技术。AIGC的核心是通过机器学习和深度学习算法,让计算机模型学会理解和生成人类语言…

前端锚点 点击 滑动双向绑定

一. 页面样式 二. 代码 <div class"flexBox"><div class"mdDiv" v-for"(item,index) in tabList" :key"index" :class"nowChooseindex?choosed:" click"jumpMD(index, item.id)">{{item.name}}&l…

TrueNAS系统在ARM平台上的移植

随着家庭及中小型企业对存储和共享需求的日益增长&#xff0c;高效、可靠的文件存储系统成为支撑各类应用的关键。 在众多存储系统中&#xff0c;TrueNAS以其卓越的数据完整性与可靠性、简洁高效的应用程序部署和管理、灵活的虚拟化应用添加能力&#xff0c;以及出色的可用性&a…

scrapy模块的基础使用

scrapy模块是爬虫工作者最常用的一个模块之一&#xff0c;因它有许多好用的模板&#xff0c;和丰富的中间件&#xff0c;深受欢迎。 一&#xff0c;scrapy的安装 可以通过pypi的指引进行安装 在终端内输入以下代码&#xff1a; pip install scrapy 二&#xff0c;项目的建…

抖音a_bogus,mstoken全参数爬虫逆向补环境2024-06-15最新版

抖音a_bogus,mstoken全参数爬虫逆向补环境2024-06-15最新版 接口及参数 打开网页版抖音&#xff0c;右键视频进入详情页。F12打开控制台筛选detail&#xff0c;然后刷新网页&#xff0c;找到请求。可以发现我们本次的参数目标a_bogus。a_bogus有时长度为168有时为172&#xf…

HTC手机卷土重来,价格和配置给我看麻了

第一眼看到我是不敢相信的&#xff0c;HTC 竟然还活着。 提到 HTC&#xff0c;相信不少同学会发出「那是我在夕阳下奔跑并逝去的青春」这样的感叹吧。 曾经辉煌一时的手机大佬&#xff0c;市占率曾一度达到 15%。 璀璨就如同天边一闪而过的流星。关于它的风光地位&#xff0c;…

基于ChatGPT-4o自然科学研究全流程实践技术应用

自然科学研究遵循严谨的科学方法论&#xff0c;包括文献调研、问题综述、试验设计、提出假设、数据清洗、统计诊断、大数据分析、经典统计模型&#xff08;回归模型、混合效应模型、结构方程模型、Meta分析模型&#xff09;、参数优化、机器/深度学习、大尺度模型构建与模拟、论…

英伟达开源 3400 亿参数模型;苹果 iOS 18 紧急 SOS 新增实时视频功能丨 RTE 开发者日报 Vol.225

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

Excel批量删除括号里内容,帮你轻松应对!

某次&#xff0c;刘小生从系统导出的人员信息中&#xff0c;“姓名”字段信息中包含了工号信息&#xff0c;需要将“原姓名”中的“工号、括号”信息删除&#xff0c;如果一个一个删除工作量很大&#xff0c;刘小生想到可以用“通配符*”批量替换&#xff0c;解放双手&#xff…

【ARMv8/ARMv9 硬件加速系列 3.3 -- SVE LD2D 和 ST2D 使用介绍】

文章目录 SVE 多向量操作LD2D(加载)LD2D 操作说明LD2D 使用举例ST2D(存储)ST2D 使用举例ST2D 存储示例代码ld2d 和 st2d 小结SVE 多向量操作 在ARMv8/9的SVE (Scalable Vector Extension) 指令集中,st2d和ld2d指令用于向量化的存储和加载操作,具体地,它们允许同时对两个…

【问题记录】Ubuntu提示: “E: 软件包 gcc 没有可安装候选“

Ubuntu提示: "E: 软件包 gcc 没有可安装候选" 一&#xff0c;问题现象二&#xff0c;问题原因&解决方法 一&#xff0c;问题现象 在虚拟机Ubuntu中进行安装gcc命令时报错&#xff1a;“E: 软件包 gcc 没有可安装候选”: 二&#xff0c;问题原因&解决方法 …

Vue项目中,利用iframe在线预览pdf/图片等

在components下新建 src\components\iFrame\index.vue <template><div v-loading"loading" :style"height: height"><iframe :src"src" frameborder"no" style"width: 100%; height: 100%" scrolling"…