Oracle Database 19c: Administration
language: ES
WEBVTT Excelente. Todos tienen esas notas. Muy bien. Ok. Entonces, vamos a ir básicamente siguiendo ese tutorial o esas notas. Sí, aquí en este caso, pues nosotros ya tenemos instalado Docker. No es ya necesario que yo lo instale, pero digamos que estos son los comandos que yo tendría que ejecutar si en algún momento no tuviera una instalación y quisiera hacerlo y pues bueno, eso ahorita lo vamos a ver. Después de instalar Docker y Docker Compose, el tercer paso sería instalar lo que es Oracle Client, Oracle, la imagen de Oracle. Todo esto que estamos viendo aquí en la, en la, en, digamos en la, en el blog de notas o en la aplicación TXT, este archivito, también está aquí en la presentación, va, para que ustedes lo puedan ir revisando, pues tal vez con mayor formato, no sé. Va, para que lo puedan ir viendo. Y bueno, ¿Qué sigue? Vamos a instalar ahora sí Oracle. Para eso, yo me tengo que ir a lo que es esta carpeta de descargas. Sí, que bueno, por default ahí se descarga todo lo que yo baje de internet. Como yo les decía, Oracle es una, es digamos un servicio, una base de datos, o sea, es, es hablando de Docker, de nuestro, en nuestro ecosistema de Docker, no, no, Docker no publica imágenes de lo que son eh, softwares privados. Hablando de eso, no les mostré lo que es el, el repositorio de Docker. Entonces, vamos a buscar el del repositorio. Mira, es esto, Docker Hub. Sí, Docker Hub básicamente es un, este, es un, es una librería, es una librería de imágenes o de servicios que están públicos para que las personas que ocupen Docker y Docker Compose
on 2024-02-06
language: ES
WEBVTT de la imagen oficial de Grafana y yo ya con esto los puedo este ocupar, ¿No? Ahora vamos a ver cómo se arma ese archivo para que nos permite ser empaquetado de varias aplicaciones. Entonces, este, miren, aquí, por ejemplo, hay una base de datos que se llama Postgres, la de MySQL, yo utilizando alguno de estos comandos simplemente ya puedo ejecutarlo teniendo Docker ya con eso yo puedo instalar y ejecutar, mejor dicho, ejecutar el software que estoy aquí contenerizando, ¿No? Metiendo en el contenedor. Puedo instalar PHP, por ahí creo que hay frameworks, Laravel, Symphony, Send Framework, todos esos, los puedes ir este empaquetando, ¿No? En lo que es una instancia de Docker. Entonces, pues bueno, facilita mucho la vida. Entonces, ya que hablamos de la parte del repositorio, como les comento, no hay una imagen, este, oficial, digamos, de Oracle porque, pues bueno, es un servicio, es una base de datos de pago, ¿Va? Sin embargo, como no lo pone público, lo que sí hace Oracle es este, poner a disposición un repositorio que sí es público y que te permite a través de ese repositorio crear tú mismo lo que es la imagen de Docker. Entonces, lo que no encontramos ahí en el repositorio de imágenes, nosotros lo podemos crear de forma local. Y, pues bueno, habrá quien ese repositorio lo pueda, o esa imagen, mejor dicho, lo pueda subir al repositorio privado de una empresa, sobre todo gente que se dedica al tema de la administración, ¿No? La infraestructura. Y podría estar creando una imagen que, pues bueno, sea en específico para nuestra institución, ¿No? Yo en este caso voy a abrir antes de ejecutar los comandos, nada más voy a abrir lo que es la página de GitHub, así en solo, para que podamos ver qué contiene. Por cierto, todos manejan GitHub, ¿Verdad? Todos tienen noción de lo que es este GitHub. Ah, perfecto, súper. OK, bueno, realmente vamos a ocupar GitHub muy poquito, nada más de hecho para hacer el clonado de las imágenes. Pero ya dentro de GitHub, bueno, ya entrando en materia, yo configure, y de hecho ustedes en su máquina van a tener este ahí, una cuenta de GitHub que es, pues, es propia de NobleProj, ¿No? Pero bueno, no importa, simplemente es para, la estamos usando para bajar este, los repositorios y evitarnos que cada quien tenga un usuario en GitHub y demás, ¿No? Entonces, bueno, nada más es como funcionaría, ya está configurado, ¿Va? Entonces, bueno, aquí en esta página, si se fijan, estoy metiéndome a un repositorio GitHub de Oracle, es oficial de Oracle, y aquí hay una carpeta que se llama Docker Images, ¿No? Images. Esta ruta, aquí lo que aloja es básicamente todas las instrucciones que tú puedas ocupar para crear una imagen de Docker, la puedes hacer de forma local. Aquí incluso el repositorio, pues, tiene un readme, que bueno, ahorita no lo vamos a revisar a detalle, simplemente vas a saber con que este es el repositorio que vamos a estar ocupando. Entonces, bueno, aquí el comando, lo que nos pide es meternos a esta ruta, que de hecho eso lo pueden ir haciendo. Ajá, es simple y sencillamente ahorita para comprobar que sí lo tenemos, ¿No? Entonces, yo meto la ruta en descargas, ¿Sí? Y en descargas yo voy a ejecutar un comando que es el de listar los directorios, ahorita no le hagan caso a lo que vean de más, solamente vamos a ir viendo lo que nos va diciendo aquí el tutorial, ¿No? Y todo eso está ahí. Entonces, yo limpio pantalla con el comando clear, C-L-A-R, ¿Sí? Tal vez solo eso es lo que difere, esos comandos van a diferir entre sistemas operativos, ¿No? A lo mejor en Windows es un CLS, aquí en alguna distribución de Linux es un clear, ¿No? Eso es tal vez lo que difiera del curso, ¿No? Del sistema operativo. Todo lo demás no. ¿Por qué estoy aquí adentro? Porque quiero mostrarles la cuenta de GitHub. Si yo hago, por ejemplo, un, a ver ahí se traba un poquito, es que les digo que mi cuenta está un poco... Déjenme ver si ya tengo conexión.
on 2024-02-06
language: ES
WEBVTT Eso quiere decir que yo ya tengo una imagen que se llama Oracle Database. Sí, este es el tag. Y todo eso lo creó en automático porque, como les digo, todo eso lo tomó del repositorio oficial de Oracle. Y solamente con esos 9 comandos yo ya creé una imagen con estas características de la base de datos de Oracle. Esa es mi imagen. Ahora yo voy a ver cómo voy a ocupar esa imagen para que la pueda, para que yo me pueda conectar, digamos, en la instancia de la base de datos. Ahora, hasta ahorita yo tengo instalada lo que es la imagen. OK. Entonces, ¿qué seguiría? Después de que yo ya tengo esta parte de Oracle, ¿sí? Yo voy a ejecutar otros comandos. Bueno, aquí hay una serie de comandos que son más como de guía o de acordeón, por así decirlo, que son comandos de Docker. Por ejemplo, este que ya ejecutamos que nos lista cuáles son las imágenes que tenemos. El objetivo después de tener la imagen es crear un contenedor. El concepto que les explicaba de lo que nos ayuda Docker Compose y demás. Entonces, si vuelvo a ejecutar este comando de Docker Images, simplemente es como para que podamos ver de dónde sale el tema del nombre. Aquí yo tengo el nombre de un repositorio y yo lo puedo ejecutar en mi segundo comando. Si se fijan, este texto que tengo aquí viene de lo que sale aquí en la terminal de Oracle Database. Este es el nombre de mi repositorio. Sí. Entonces, yo quiero ver cuáles son los contenedores asociados a esa imagen. Entonces, si yo lo ejecuto, obviamente aquí sí me va a dar una salida. Si fuera virgen, este comando no nos devolvería ninguna información. Pero como yo y ustedes ya lo tienen ahí instalado, aquí ya me está diciendo que hay una base de datos instalada, un contenedor. Entonces, ahorita este lo vamos a dejar así. Solamente es como para ir viendo qué podríamos ir haciendo. Y, bueno, los comandos que habíamos hablado al inicio de iniciarlos, removerlos y todo esto. Pues, bueno, son comandos útiles que ustedes les pueden servir más adelante que se vayan haciendo más diestros en lo que es la parte de docker. Pero, bueno, aquí nada más vale la pena mencionarles que hay un comando que es peligroso, que es este, el 7. Si nosotros ejecutáramos este comando, se va a destruir la base de datos. ¿Qué va a pasar? La va a bajar. Pero bajar no solo se refiere a pagarla, sino a destruirla. Entonces, este comando nada más se los pongo yo por si en algún momento lo pueden ocupar o no se lo tengan a la mano. Pero ahorita para el curso no les recomiendo ocuparlo, porque lo que haría es matar este contenedor. Y, pues, bueno, al hacer eso tendríamos que hacer todo el proceso otra vez de crear. Y listo. Esto es básicamente lo que estaría haciendo estos comandos. Aquí tenemos comandos tanto de docker como de docker compose. Son dos comandos y se fijan diferentes. Esto es docker y esto es docker compose. Como ya los tenemos los dos instalados, pues, nos sirve. Si yo ejecutara este comando, por ejemplo, de docker compose, ahí yo puedo ver cuáles son las herramientas que tengo ahí trabajando. Obviamente, este docker compose no se ejecuta porque tiene que estar en una ruta en donde corre un archivo, un archivo del tipo docker. Ahorita vamos a ver esa parte. Eso porque, bueno, ahorita como estoy dentro de esta ruta, pues, por eso no jala ese comando. Pero los que sí jalan son los comandos de docker, que son, por ejemplo, ese mismo comando. Si yo lo ejecutara, lo podría ejecutar con el puro docker. Puro comando docker y ahí me muestra lo que es el contenedor. Entonces, bueno, ya suelto el primer pomodoro. Vamos a tomar los 5 minutos de descanso, que son los de acá. Y les parece si a las 10.41 nos volvemos a conectar y continuamos con esta parte. Ya estaríamos tomando el primer. Adelante. OK, a ver, déjame ver si puedo conectarme a tu instancia y revisar qué onda. A ver.
on 2024-02-06
language: ES
WEBVTT me doy cuenta que ya está iniciado con este comando que tengo acá el 7. Si yo ejecutara este comando acá en la terminal me va a decir su estatus, me va a decir en qué estatus está. En este caso ya está activo, entonces si tú ejecutas el comando otra vez de activarlo, pues ahí va a tronar. Lo que sí podrías hacer, por ejemplo, es reiniciarlo o detenerlo. Entonces podrías ejecutar alguno de estos dos y lo que harías es este apagarlo. Por ejemplo, puedes ejecutar este comando incluso lo podemos ejecutar acá. En este mismo terminal yo le digo que se apague y ahí me va a estar dando, bueno se va a tomar ahí su tiempo y una vez que se apague yo puedo volver a ejecutar el comando para ver este el estatus. Mira ahí me está diciendo un warning, pero no da mayor problema. Ahí se va a estar apagando, se está desactivando. Toma un ratito de tiempo, pero bueno tampoco es como demasiado. Hay que estarlo monitoreando. La ventaja de tener la interfaz gráfica es que esto nos lo nos lo va diciendo ahí como en la máquina. De hecho, mira aquí ya te dice que ya se detuvo. Entonces vamos viendo. De hecho ahí ya está detenido. Entonces yo me voy saliendo e igual te digo voy monitoreando con esta imagen y ya está. Entonces ya está detenido. Aquí ya nos dice, está detenido. Entonces cómo lo podría volver a iniciar? Pues otra vez con el comando start. Ahí hay que buscar el stop, aquí le decimos start y ahí está. Como ya lo apague, ya lo inicié y otra vez puedo ver el estatus con este comando y ahí está. Ya lo activo. Exacto, eso es lo que podremos ahorita hacer porque ya está activo. O también lo puedes reiniciar. El reiniciado te digo que lo que hace es apagarlo e iniciarlo. Todo lo que hicimos ahorita en dos comandos lo haría en uno solo. Este de acá. Y pues bueno, eso es lo que es la parte de DOC. No, hasta ahorita tienes, bueno, sí lo tienes porque yo ya configure todo esto para que no se lleve tanto tiempo. Porque instalar la base de datos en un comando, si es un proceso que se demora a veces hasta una hora. Entonces fíjate que nuestra máquina que cree, o sea este ambiente de Ubuntu, trae bastante potencia. Trae 8 núcleos, no, creo 16 núcleos. Trae bastante y aún así se tardó. Oracle es muy muy pesado, realmente es muy pesado. Entonces, o sea, ya tenemos aquí todo instalado, pero yo nada más lo voy viendo como que paso a paso de lo que yo hice para que ustedes lo puedan en algún momento replicar. No, ahorita nada más es verlo. De hecho sí quería eliminar la instancia y que la volvieran a crear ustedes, pero el tiempo pasa muy rápido. Entonces ahorita mejor ya nada más lo vemos así rápido y ya interactuamos con la base de datos, que es lo más relevante del día.
on 2024-02-06
language: ES
WEBVTT nos permiten eso hacer interactuar, digamos, con nuestra imagen de Oracle. Creo que hasta ahorita, ese es como el concepto. Llegamos a instalar la imagen de Oracle. Lo que ocuparía después Docker Compose para poder hacer el contenedor. ¿Sí? Entonces, ese es el objetivo. Para no perderlos, primero creamos una imagen que es lo que ocupábamos. Es decir, necesitábamos crear a partir del repositorio de GitHub de Oracle oficial una imagen que después vamos a poder contenerizar. ¿Sí? Con Docker Compose. Y listo. Eso de la contenerización se hace con la siguiente sección. Esa sección es esta. ¿Sí? Entonces, aquí nos dice cómo vamos a crear un contenedor con lo que es Docker Compose. Entonces, para eso vamos a ir siguiendo igual esta serie de comandos. Realmente, aquí nada más son cinco comandos los que hay que ejecutar. ¿Sí? Entonces, el primer comando es crear un directorio que se llame Oracle 19. Yo ya lo cree. Igual en sus máquinas ya está. Y lo único que podemos hacer ahorita es entrar y verlo. Entonces, aquí mismo donde yo estaba parado, pues en esta terminal lo voy a pegar ese comando. Y si te fijas, yo ya ahí adentro, ya me metí. Ya estoy en la carpeta que se llama Oracle 19. Yo voy a ejecutar el comando ls espacio guión la. ¿Sí? Y le voy a dar Enter con el objetivo de ver qué hay dentro de esa carpeta. Dentro de esa carpeta hay un archivo que se llama DockerCompose.yaml. Este es el archivo que les describí al inicio o que traté de describir. Es un archivo con una extensión .yml. Yyml es un lenguaje. Vamos a suponerlo muy similar a lo que es este, al menos en concepto, a lo que es este xml, tal vez JSON. Son lenguajes que definen configuraciones. Es un lenguaje ya no tan moderno, pero que precisamente permite hacer eso. Definir, ¿no? Definir y se ocupa mucho en temas de configuraciones. Por ahí recuerdo que hay compañeros que también le hicieron a la parte de Java. Y, bueno, en Java se puede ocupar este formato. Y, bueno, en Java se puede ocupar este formato. Y, bueno, en Java se puede ocupar este formato. Y, bueno, en Java se puede ocupar este formato. Y, bueno, en Java se puede ocupar este formato. Y, bueno, en Java se puede ocupar este formato. Y, bueno, en Java se puede ocupar este formato. Y, bueno, en Java se puede ocupar este formato. Y, bueno, en Java se puede ocupar este formato. Y, bueno, en Java se puede ocupar este formato. Bien, listo. Con esto, a este servicio yo le estoy diciendo que agarre una imagen. Por eso era importante el proceso anterior. Porque yo necesito decirle qué imagen es la que va a agarrar. Y esta imagen es la que yo cree en el paso anterior, ¿no? Lo que les decía de la imagen. Entonces, esta imagen ahora que yo ya la tengo, la puedo ocupar, ya disponer, y se la puedo pasar como un servicio a lo que es este archivo de Docker Compose. Va. Entonces, aquí además, en esta definición, digamos, de infraestructura, por así decir, ¿no? Estoy diciéndole qué puertos son los que pueden mapear mi servicio. Esto ya empieza a sonar un poco como lo que es una instalación, digamos, de Docker, perdón, de Oracle normal, ¿no? Además, estoy creando algunas variables de ambiente, por ejemplo, estas, que me van a ayudar mucho para el tema de la conexión con la base de datos, ¿no? En este caso, el usuario, el password, toda esta parte, ¿sí? Cómo se configuran el set de caracteres de la base de datos, etcétera, etcétera, ¿sí? Dentro de esto, es importante, por ejemplo, mencionar que se debe de aprovisionar la máquina con bastantes recursos. Eso es a lo que me refería con que si no lo aprovisiono bien, pues realmente Oracle es muy pesado. Y si yo no lo aprovisiono con la cantidad de memoria adecuada, pues eso va a colapsar. ¿Me dan un segundo, por favor? Listo. Una vez, listo. Va. Se me escucha, ¿verdad? Ah, perfecto. Va. Entonces, bueno, les decía que este es el archivo de Oracle Compose. Y, bueno, así básicamente es la sintaxis que seguimos para su creación, ¿va? Y, bueno, esto de acá que tenemos nos dicta la cantidad de memoria que le tenemos que meter a la base de datos, pues, bueno, para que funcione. Aquí le estamos metiendo lo que es el password. Y, pues, bueno, estos dos conceptos que ahorita vamos a entender un poquito más, lo que es el SID y el PDB, ¿va? Y, bueno, ahora vamos a ver, por favor, si es que hay que ver con el SID, porque ahorita nada más pongamos, digamos, foco en que existen estas dos variables. Y, bueno, el tema del volumen es la ruta en donde se va a estar instalando lo que es la base de datos y de las cosas que también nos sirven, entender, es esto, ¿no? La cantidad de CPUs que le estamos metiendo, que es de 8. Como les comentaba, yo esta máquina de Ubuntu la que tiene bastante memoria y CPU, entonces está bastante sobrada esta instancia de Docker. Y, pues, bueno, esto es lo que hay que ponerle foco y, pues, listo. Ahora, ¿qué es lo que hace este archivo? Cuando yo ejecuto el archivo para ejecutarlo, para que Docker lo entienda como un contenedor y a crear el contenedor, va a leer este archivo, estas instrucciones, ¿sí? Y como ya vimos, aquí adentro de esta instrucción está la imagen, que es la que creamos de pasos anteriores. OK. Este comando que se llama Docker Compose Op Gion D, cuando yo lo ejecuto dentro de esta ruta, por eso es importante estar dentro de la ruta en donde yo cree el archivo, cuando yo lo ejecuto, este comando va a entender que hay un archivo que se llama de esta forma y va a interpretar todo lo que está aquí adentro. ¿Y qué es lo que va a hacer cuando acabe de hacerlo? Cuando acabe de ejecutar esas instrucciones, lo que va a hacer es crearme un contenedor. En este caso, yo puedo listar esos contenedores con el comando Docker Compose PS. Si se fijan, ese es un comando diferente al Docker PS, porque este tiene la leyenda Docker Compose. ¿Se acuerdan que este yo lo había ejecutado en otra instancia en donde no estaba en la ruta y no funcionó? Eso es porque necesita estar dentro de la ruta en donde existe, donde se encuentra este archivo Docker Compose. Entonces, yo al ejecutarlo, yo ya puedo ver mi contenedor, que de hecho se llama de esta forma, que es como yo lo llame. Si se fijan, aquí adentro del archivo dice container name. Este es el nombre que se le da con ese parámetro. Y me dice otro estado importante, otra bandera, es este. Nos dice que está arriba y que es saludable, que está GOK. Hacer eso, lo que realmente está pasando es que dentro del ecosistema de Docker me está creando algo así como si fuera instalada así corriendo. No, consuelo hacer eso. Entonces, ya que esto se ejecutó y está corriendo, ya vi su PS, ya me dijo que el contenedor está GOK, está arriba y todo. Eso significa que yo ya puedo meterme al contenedor, al contenedor de Docker que se llama así, oracol de B. Y adentro ya está la base de datos. ¿Cómo hago eso? Ah, bueno. Lo hago a través de este comando. En este caso, yo ya voy a entrar a lo que es la línea de comando de SQL+. SQL+, como saben, bueno, más bien creo que no lo conocen, o a lo mejor algunos sí. SQL+, es, digamos, la herramienta de línea de comando que nos permite interactuar con la instancia de la base de datos. Entonces, yo por medio de la interfaz de línea de comando voy a poder ya ver mis tablas, mis bases de datos y demás. Entonces, para eso yo necesito primero entrar al contenedor, al que acabo de crear. Y eso lo voy a hacer con este comando. Si yo lo ejecuto, por ejemplo, aquí adentro, voy a limpiar la pantalla. Si yo lo ejecuto, lo que estoy diciéndoles, le estoy diciendo a Docker que ejecute, digamos, la instancia o el contenedor que se llama Oracle DB, ¿sí? Y al darle Enter, si te fijan, aquí ya cambió la, el prompt, el prompt de mi terminal. Eso quiere decir que yo ya estoy adentro del contenedor. Es lo que les decía, más o menos como que les daba a entender que se instala algo así como si fuera un pequeño sistema operativo. Basado en Linux, adentro de nuestro sistema operativo. Entonces, este prompt, yo puedo ejecutar, por ejemplo, el comando pwd y me va a decir en qué instancia, en qué ruta estoy parado. En este caso, la ruta se llama home Oracle. Y, pues, bueno, yo aquí adentro, yo ya puedo ocupar la línea de comando de SQL Plus con esto, ¿sí? Yo al meter esta instrucción, estoy diciendo que quiero entrar como DBA a la instancia de Oracle donde estoy. Y lo voy a abrir a través de la herramienta que se llama SQL Plus, ¿va? Entonces, al darle Enter, si te fijas, ya me cambia el prompt y ya me dan la bienvenida a lo que es SQL Plus. Y me está diciendo que ya estoy conectado a la base de datos de Oracle, la 19c, ¿va? Aquí adentro, yo ya soy el usuario Sys. Ya soy Sys DBA y yo ya puedo ejecutar este, pues, comandos, ¿no? Aquí adentro, esto realmente es una interfaz muy limitada, SQL Plus es una herramienta, pues, a lo mejor que te permite, que sirve como para hacer cosas tal vez ahorita de primera instancia muy simples, pero toma potencia cuando, pues, por ejemplo, puedes pensar en automatizar algún proceso y demás, ¿no? Entonces, pues, bueno, esta es como la forma de que yo me puedo conectar a lo que es la instancia de Oracle por medio de SQL Plus. No sé si todos lograron conectarse, tienen alguna duda.
on 2024-02-06
language: ES
WEBVTT ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es? ¿Qué es lo que es?
on 2024-02-06
language: ES
WEBVTT Y ya el siguiente ejercicio es conectarnos, pero a lo que es la interfaz gráfica, el SQL Developer. Ahí te ayudo, Jesús. ¿Veo tu máquina? Sí. Sí eres Jesús Leal. Ahí está. OK, a ver, no te deje entrar porque estamos viendo. Mira, primero tienes que ejecutar el comando que dice 1. Dice SQL+, el primer comando de SQL+, que dice docker exec guion it. Correcto. Ese comando lo que hace es que te va a permitir entrar a la instancia al contenedor. Ahí estás. Si te fijas, ya cambió el prompt. Ahora sí, ahí ya puedes ejecutar directamente el 3 o el 2, cualquiera de los 2. Listo. Y ahora, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando, cuando te deje el comando,
on 2024-02-06
language: ES
WEBVTT pues no hubo nada que le especificara que queremos algún esquema en particular o algo, ¿no? O sea, si te fijas, las instrucciones fueron muy claras. Y no, no se especifica nada de eso. Bueno, se podría haber hecho, sí, tal vez aquí en la sección de volúmenes, cargar este cierta información. Pero bueno, no lo hicimos de esa forma, lo hicimos de otra forma. Cuando eso pasa, tú los puedes cargar de forma manual a través del repositorio, que es lo que vamos a hacer. Listo. Y el comando básicamente es esta sección. Sí. En esta sección que nosotros tenemos del esquema, básicamente nos va guía a cómo cargar esa información, esas tablas. Y aquí, en la sección de volúmenes, nos dice que tenemos, primero que nada, tenemos que salirnos ya de la instancia o abrir otra pestaña, que es lo que voy a hacer. Podemos abrir otra pestaña. Y ya podemos ir ejecutando estos comandos que nos va diciendo. Sí. Aquí básicamente lo que tenemos que hacer es descargar, igual que el paso anterior, el repositorio. Estos que tenemos acá. Sí. Ese repositorio lo tenemos que descargar, digamos, en nuestra máquina. Perdón, es que estoy teniendo un poco de dificultad para respirar. Entonces, si me escuchan un poco agitados, es por eso. Bueno. Bueno, el repositorio se descarga. ¿Sale? Por eso aquí nos tenemos que salir de la instancia o abrir otra pestaña. Y, bueno, al descargar el repositorio, yo con este comando lo que necesito hacer es pasarme desde la máquina física. En este caso, mi máquina con el sistema operativo de Ubuntu y pasarle lo que yo tengo en esta ruta, que viene a ser del repositorio. Copiarlo a esta ruta dentro del contenedor de Oracle. Ejecutando estos comandos, lo que van a hacer es básicamente copiar todo lo que está dentro de Human Resources acá. Es decir, estos scripts, estos SQL, los va a pasar, digamos, de nuestra máquina a huésped hacia nuestra máquina, hacia nuestra instancia de Docker. ¿Por qué lo hicimos así? Porque la instancia de Docker, cuando nosotros nos metemos, que en este caso es este comando, si se acuerdan, que de hecho, bueno, es, lo puedo ejecutar por acá. En esta máquina, aquí yo estoy aquí adentro, esta, esta máquina es, es muy limitada en recursos. Está mega limitada y, por ejemplo, aquí no tengo comandos de, de GitHub. No tengo nada de eso. Es como si fuera un literal, un mero sistema operativo con fuera línea de comando, sin interfaz. ¿Va? Entonces, por eso es que yo me baso de salirme, irme a mi máquina cliente o huésped y desde ahí descargado el repositorio. Una vez que tengo ese repositorio allá de aquí, en esta máquina, ya lo puedo transmitir a la máquina, este, a la máquina con este, con este sistema operativo, ¿no? La máquina contenedora, la de Docker. Y bueno, eso lo hago con este comando. El comando de acá, el copy. Para eso es ese, este, ese comando. Entonces, yo con eso, ya dentro de la base de datos, si yo me sitúo aquí, yo ya tengo, digamos, estos scripts que ya puedo ejecutar con los siguientes comandos dentro de la base de datos. Y al hacer eso, yo ya puedo, este, este es el comando que instalaría o ejecutaría, mejor dicho, dentro de la instancia de la base de datos, este, este script que se llama HR install .sql. Este archivo o este script es el que se va a estar ejecutando y este de aquí van a llamar, pues obviamente a sus, a otros, a los otros scripts, ¿no? A estos que vemos acá, a todos estos. Entonces, digamos que el importante es este. Y ese es el que se está ejecutando en este paso, ¿va? Todo lo que viene aquí en esta serie de pasos es para eso, para instalar, digamos, el modelo, ¿sí? El modelo de información y pues bueno, yo como compruebo que eso ya está, eso es lo que ustedes pueden hacer a partir de este paso 8, ¿sí? Podrían irse acá y ejecutarlo. ¿Qué es lo que básicamente estarían haciendo? Cuando nosotros ejecutamos este script de install, me está creando un usuario que se llama HR. Cuando ustedes lo ejecutan, les va a pedir en el prompt, va a salir un prompt y les va a pedir una contraseña. Yo en este caso le puse la contraseña 123456, ¿va? Y cuando, y con ese, con eso en mente, o ya sabiendo ustedes eso, de dónde salió ese 123456, lo pueden ejecutar. Entonces, si yo lo copio y lo pego, si se fijan, yo ya me puedo conectar. Ah, bueno, primero tengo que estar dentro de la instancia, ¿no? Entonces, aquí adentro yo ya puedo iniciar mi sesión, pero en este caso yo me estoy conectando con, no con el usuario sysdba, sino con el usuario HR, que es con el que el script me ayudó a crear y va a interactuar con la base de datos. ¿Cómo puedo yo comprobar que sí estoy ejecutando ese modelo? Pues a través de un comando, como por ejemplo este query de acá, ¿no? Aquí voy a quitar esto que se desmarcó sin querer. Con este query. Haciendo este select a la tabla user-user, yo ya estoy viendo cuáles son mis usuarios que están, este, de hecho me está mostrando el usuario y el estatus. Y ahora me estoy poniendo un
on 2024-02-06
language: ES
WEBVTT Listo, a ver, entonces me conecto al modo interactivo. Listo, a ver, perdóname, ¿puedes mostrarme dónde vas a ejecutarlo? A ver, si quieres, ahí ya estás en la instancia. Si te fijas, ahí tú te metiste, pero con el usuario sysdba. Entonces, para que te
on 2024-02-06
language: ES
WEBVTT ¿Alguna duda o inquietud con, creo que todos lo logramos, verdad? ¿Connectarnos? Y bueno, más que lograr conectarse, no sé si quedó claro el concepto de Docker, cómo se instaló Oracle, cómo nos conectamos a, cómo poblamos el registro, con qué usuarios estamos, la diferencia entre los dos usuarios, o si quieren que indaguemos en algo. Creo que está entendible, ¿no? Hasta este punto. Listo, va. ¿Alguien iba a decir algo? Ok, va. Bueno, entonces continuamos aquí en nuestro archivo. Este... A ver, déjenme ver aquí por qué no me deja entrar. Listo, creo que ahí está. Ok, bueno, lo siguiente. Aquí vamos a hacerle ya más bien caso a la presentación. Hasta este punto logramos ya conectarnos a la base de datos, todo lo que estuvimos haciendo. ¿Todavía se ve mi pantalla, verdad? Sí. Bien, todo lo que estuvimos haciendo es esto, ¿no? Lo podemos ir retomando aquí en la presentación, pero bueno, es todo lo que fuimos llenando con los archivos, ¿no? Con nuestro archivo, entramos a lo que es la base de datos, vimos lo que es el Docker Compose y demás. Entramos a lo que es SQL plus y cargamos la base de datos de... Bueno, el esquema de Human Resources para apoyarnos con el curso. Va. Aquí en la diapositiva 17 nos vamos a encontrar también con cómo se instala la interfaz gráfica o el IDE en el entorno de desarrollo integrado de una herramienta que se llama Oracle SQL Developer. Este es el IDE, por así decirlo, es como SQL Server, ¿no? El IDE o PGA Admin, algo así, ¿no? El IDE. Entonces, básicamente eso lo hacemos descargándolo de la página oficial. Aquí en la página 17, en la diapositiva 17, si yo me meto a ese enlace, voy a encontrar la herramienta SQL Developer, la versión, en este caso, la 2311. Y pues no es más que seleccionar la plataforma en la que yo me encuentre. Aquí pues vale aclarar que obviamente se necesita Java, la versión 11, el JDK 11. Algunas instaladores ya te lo traen incluido, otros no. Entonces, en nuestro caso vamos a utilizar este Linux RPM. Y bueno, aquí en nuestra diapositiva viene literal todo lo que hay que hacer. Antes de todo, nos pide instalar Java, lo hacemos con estos tres comandos. Todo esto nosotros ya lo tenemos hecho. Entonces es meramente ilustrativo hasta este punto. Al final, si se dan cuenta, lo que vemos aquí es un archivo RPM. Si yo lo intentara descargar, se va a descargar un archivo .rpm, que básicamente en Linux o cualquier distribución de ese sistema operativo, necesitamos convertir ese RPM a un archivo .dev. Ese .dev ya lo podría interpretar un sistema operativo como por ejemplo Ubuntu. Entonces, para hacer esa conversión, ocupamos una herramienta que se llama Alien. Y pues bueno, no es más que ir siguiendo ahí los comandos para convertir ese archivo que estamos aquí descargando a un archivo que puede interpretar nuestro sistema operativo. Y una vez que nosotros tenemos eso, yo ya puedo abrir la interfaz gráfica de SQL Developer. Entonces, aquí digamos voy a mostrar nada más hasta donde se... digamos la ejecución del comando, que en este caso son el comando 4. Solamente el comando 4 para que vean cómo se abre, pero no voy a hacer más que abrir la interfaz. Entonces, con ese comando, si yo... aquí lo voy a cerrar.
on 2024-02-06
language: ES
WEBVTT a darnos cuenta incluso que con eso se alcanzan a ver la mayoría de los temas del día de hoy. Ahorita lo vamos a seguir revisando. Si nos vamos a la presentación, pues vamos a empezar a ver lo que es este, hasta ahí digamos la parte del de la ambientación. Correcto. Muy bien. Entonces estos conceptos pueden resultar a lo mejor un poquito abrumantes al inicio, pero los vamos a ir revisando conforme a la parte práctica que ya realizamos. Esto, estos archivos son lo que compone el componente que nos decía ahorita Aaron, la base de datos física. Vamos a entrar un poquito más en detalle de lo que es una instancia. Este ejemplo, o para describir esto de la instancia, lo vamos a tomar con el ejemplo que hemos Al ejecutar una consulta, la instancia de Oracle que corre en Docker, lo que instalamos, va a facilitar este proceso. Entonces para este ejemplo nosotros nos metemos a nuestra instancia como lo hemos estado haciendo. Como lo vimos ahorita me conecto al esquema con mi usuario que ya entendimos todos cómo funciona y yo puedo ejecutar esta primer consulta. Esta consulta realmente es un subquery y lo que está haciendo es mostrando el primer nombre y el apellido de esta tabla empleados en donde el departamento, shalala. Entonces este ejemplo como nota nos dice que asume que estamos conectándonos a la base de datos utilizando ese col plus que es la herramienta que pues ya vimos ahorita. Nos está mostrando cómo la instancia, es decir esta conexión, si esta conexión a la instancia nos va a facilitar o funciona como un intermediario Creo que no funciona la parte del clipboard, del portapapeles. Yo me enfrenté con esto. Esto al parecer nada más me está dando problemas con instancias de Ubuntu que hice yo para poder pasarme los comandos de la diapositiva a la máquina interna. Básicamente me apoyé de un sitio web que se llama Codeshare. No sé si ustedes ya lo hayan trabajado, pero básicamente Codeshare lo que hace es permitirme compartir código. Entonces para ver cómo funciona lo único que hago es copiarme el comando desde aquí desde la interfaz web de mi máquina cliente y yo me voy a acordar de este y al hacerlo yo voy a poder entrar y compartir código entre mi máquina host y mi máquina digamos el web. Aquí yo ya puedo copiar este comando y ejecutarlo directamente en mi línea de comando eso básicamente porque lamentablemente me di cuenta que cuando copio desde aquí no está funcionando el clipboard pero eso tiene que ver no sé creo que con la versión de Ubuntu no me había pasado pero bueno ya no tenemos limitante usando Codeshare. Entonces qué sucede que para que yo pueda ejecutar esos comandos pues tengo que estar en una instancia de la base activa. Entonces para eso pues yo me voy a conectar todavía por medio de la línea de comandos es decir voy a ejecutar este comando y si yo lo pego aquí en mi terminal voy a poder acceder con mi password. Bueno primero tengo que meterme al contenedor entonces pues aquí lo tengo por ejemplo uno que puedo ejecutar aquí en la mano. Puedo click derecho pegar y yo estoy aquí adentro ya en el contenedor entonces adentro ahora sí ya me puedo conectar con el usuario HR ejecuto otra vez el comando no es más que lo que hemos estado trabajando le doy pegar y aquí adentro ya puedo ejecutar este comando que copie le voy a copiar que fíjate que este comando estoy viendo que es de Docker ese no se ejecuta aquí adentro o sea lo puedo abrir en otra terminal en donde he estado trabajando en este caso aquí en mi ruta raíz aquí puedo pegar el comando y ejecutar y si te fijas eso lo que está haciendo es conectarse a la instancia es como el comando que metí aquí arriba no antes de conectarme aquí el que me dejó conectarme a la instancia es como este comando este comando me deja acceder a la instancia al contenedor si al sistema operativo y este y él sigue y este comando igual desde fuera desde el host por así decirlo estoy viendo como cuál es el estatus de esa instancia de ese middleware por así decirlo que me deja interactuar con la base de datos en este caso en este me está diciendo pues que está está activo no no tiene problemas de lo contrario ya me lo ya me lo diría va entonces aquí de hecho nos lo dice si la instancia está arriba solamente pues se va a listar un proceso y un sid ese sid es el digamos el identificado el id en este caso ese sid es del sistema operativo y sirve para identificar es el identificador del proceso entonces está corriendo listo entonces eso básicamente es una instancia no sé si tienen alguna duda o pregunta de lo que es la instancia de oracol si la pueden identificar aquí con lo que hemos estado trabajando creo que todo hasta ahí va claro no cualquier cosa de todos modos este me interrumpe más listo entonces hace ratito nos ayudó orlando a nos no es cierto creo que fueron y nos ayudó a cómo ves si nos echas la mano harold a leer lo siguiente sí perdón a la positiva que sí la 22 por favor no sé si la tengas a la mano o de aquí quieres leer de la pantalla por favor adelante déjame decir ya asisten global si gracias sí este en global área es ejemple con un mando de sols la sgda es una estructura de memoria compartida utilizada por la instancia de oracol para almacenar datos y control de información que facilita la gestión y el acceso a la base de datos ejemplo simple considera que varios usuarios realizan la misma ruta para obtener los detalles de los empleados del departamento y que la primera vez que se realiza la consulta por acción tiene que leer los datos desde el disco sin embargo gracias al bílber cache dentro de la sga estos datos se almacenan temporalmente en memoria cuando otro usuario realiza la misma consulta por acción puede recuperar rápidamente en lugar de acceder a la piscina mejorando el rendimiento de la consulta ahí tenemos un ejemplo de consulta beneficiada por el bílber cache select his name last or malas name where departament bajo id igual a 10 este ejemplo no incluye un código específico para interactuar con la sga ya que el manejo de la sga es interno y automático por parte de oracol sin embargo ilustra cómo la presencia de la sga mejora la eficiencia de las operaciones repetitivas correcto entonces básicamente ese concepto del sga es un concepto digamos que no no o sea no no hay forma de interactuar con ello vaya digamos que lo maneja internamente oracol es una de las de los procesos o de la de cómo su arquitectura está diseñada está organizada para que a través de este búfer cache por default siempre está pensando en cómo optimizar los recursos de sí mismo no de la instancia de la base de datos entonces uno de estos este conceptos o de estos herramientas por así decirlo internas que tiene oracol es el este búfer cache o esta sistema global aria básicamente lo que hace es que internamente maneja por nosotros esta trata de darle una optimización a las consultas que son de solo lectura en este caso por eso se ilustra un select porque internamente nosotros no lo vamos a ver pero oracol estaría haciendo un proceso para que esto lo lea ya no no lo vuelve a ejecutar si ya lo encuentra en un en un búfer porque porque bueno obviamente eso va a tratar de hacerlo de forma óptima para que no esté ojo no quiere decir que lo haga todo oracol más adelante vamos a ir viendo que nosotros pues también le vamos a ayudar a la instancia a comportarse de forma más óptima cuando hablábamos de los procesos de fondo que oracol tiene hablábamos por ahí nos decían nos ayudaron a leer que están estos no el proceso monitor el sistema monitor el database writer el log writer y bueno básicamente aquí dice qué está haciendo cada proceso oracol se apoya en múltiples procesos de fondo para mantener la operación la integridad y el performance de la base de datos cada uno de estos procesos va a tener una responsabilidad muy en específico por ejemplo el proceso monitor aquí nos dice lo que hace no que es básicamente supervisar y recuperar procesos que fallaron la base de datos por ejemplo si una sesión de usuarios se desconecta de la nada process monitor limpia la sesión y libera los recursos que estaban asociados no los deja ahí digamos que oracol se hace uso de estos procesos y de muchos otros sin embargo estos son como de los más relevantes y por eso es que oracol es un sistema gestor de base de datos bastante potente porque trae todos estos procesos que están trabajando de fondo simplemente al instalar la instancia y pues nos están ayudando nos están haciendo paro con respecto al tema del de la optimización de recursos y demás hay otro proceso importante que es el sistema monitor que realiza las tareas de recuperación al reiniciar después de un fallo y ayuda en la optimización del espacio al combinar segmentos libres dentro de la base de datos y nosotros vamos leyendo cada uno de estos vamos entrando más en detalle de lo que hace cada cada uno de estos procesos dentro del contexto del esquema que nosotros instanciamos o inicializamos podemos ver ejemplos como por ejemplo este imaginemos que estamos actualizando salarios de empleados usando la este esquema pues básicamente aquí podemos hacer uso de estos comandos dentro de nuestra instancia por ejemplo los datos de los empleados los departamentos en ese esquema se van a guardar aquí en estos archivos si tenemos los archivos de logs que nos dan registros de las transacciones realizadas en la base de datos y cuando hacemos procesos de recuperación y demás podemos este bueno se hacen se hacen uso y hay archivos de control que nos ayudan a mantener la estructura de la base de datos e incluyendo la ubicación de archivos datos y de los red log no digamos que estos archivos son importantes porque nos definen digamos todos los dos anteriores vamos a ver que estos archivos están dentro de un patén específico en este caso pues como nosotros estamos trabajando para eso sirve este volumen nosotros podríamos hacer un ejercicio si ustedes ya lo están igual pensando que si yo me conecto a la instancia de docker puedo ya ven que se conecta a uno y este y te cambia el prom no de hecho lo puedo ejecutar por acá este prom cambió si yo aquí ahí va a entrar o sea estamos explicando qué es lo que pasa cuando una conexión se cierre de forma inesperada lo que estaría pasando es que este proceso se está ejecutando y este después de la de la desconexión los recursos como bloqueos en filas este o la memoria que haya sido usada por la sesión se libere de forma adecuada de esta forma otros usuarios van a poder trabajar sin alguna interferencia y bueno aquí hay un ejemplo muy en específico de cada uno de estos este comandos que bueno esos los podemos dejar a que ustedes nos puedan leer a su interpretación ahorita nada más lo que quisiera es ver mira que hay ejemplos de cómo inte como interactúan y básicamente todos hemos hecho un select hemos hecho updates hemos hecho insert y básicamente se ilustra o bueno más bien se explica cuáles son los procesos internos que están ocurriendo cuando se ejecuta cuando tú internamente ejecutas eso y pues bueno aquí está la relación de esos procesos con los archivos decíamos que pues bueno en estar en esta ruta aquí vamos a encontrar esos archivos que de los que estábamos hablando entonces podemos entrar con esta ruta al este digamos a la instancia que tenemos hacemos una listamos los directorios ls espacio guión la y podemos ver cuáles son los archivos que se encuentran ahí asociados y bueno ahora vamos a entrar en un concepto que es el multitenent y esto es una característica que ahora col tiene ya en los últimos ocho minutos que nos queda para para aprovechar este tiempo básicamente es una es un es un concepto que nos describe una un feature que también tiene oracle no por default pero bueno es hablar mucho de lo que es un tipo de arquitectura que viene en oracle básicamente esta arquitectura de oracle lo que hace es permitirle que una única instancia de oracle o de la base de datos de oracle que en este caso vamos a entrar al concepto de lo que es un cdb un container database y esta arquitectura multitenent le va a permitir a ese a esa base de datos contenedor contener múltiples bases de datos plug plug ebals es decir internas por así decir no es decir nosotros con una sola base de datos que le podemos llamar un cdb podemos hacer uso del arquitecto de la arquitectura de oracle como está diseñada y podemos tener bases de datos que son enchufables plug ebals vamos a entrar en el concepto de lo que son las bases de datos cdb y lo que son estas bases de datos pdb que es lo que nos define el el temario no para qué nos sirve esa este modelo arquitectura multitenent básicamente porque simplifica la administración de la base de datos y eso pues nos permite tener una consolidación eficiente vamos a ver aquí un ejemplo podemos conectarnos a una base de datos pdb y usar el esquema de de de human resources entonces aquí vamos a suponer que está la base de datos o el esquema en esta base de datos y la base de datos se llama de este tipo o rclpdb si en nuestra configuración de docker si nosotros entramos con este comando como si debe a de hecho este comando lo tenemos acuérdense que teníamos dos formas de entrar a la instancia no aquí nosotros estamos entrando con una base de datos que se llama así nosotros podemos hacer dentro de esa instancia la sesión alterarla y dar definir otra base de datos si te fijas yo aquí estoy diciendo que me estoy metiendo yo yo había entrado a una base de datos que se llama así y luego ahí adentro le dije aprovechando el concepto del multitenent le definí y le dije que la sesión mejor la altere y me meta otra base de datos le llama container o ocupa este con este comando porque realmente esa base de datos está contenida se cuelde oracle developer entonces solamente les voy a señalar en donde se encuentra ese ejemplo para que lo podamos ver porque pues prácticamente el día de hoy pues ya terminó no aquí bueno nada más retomando lo de la arquitectura multitenent los dos conceptos claves son estos que ten que podamos a poder tener una base de datos con tenedora y una base de datos que es plugable a esa base va aquí nos está diciendo básicamente cua qué es el cuál es el concepto de cada de cada de cada cosa no nos van a hablar de los beneficios que básicamente es como lo que ahorita platicábamos vamos a tener las bases de datos consolidadas las vamos a poder aislar y de esa forma les vamos a poder brindar seguridad sale vamos a poner tener una eficiencia de recursos entrando todo nuestro hardware en nuestro en única en una sola en una única y sola instancia y pues obviamente también esto habla del tema de la portabilidad porque podemos mover de una cdb hacia otra entonces este esas son de las ventajas que vamos a poder tener los procesos de backups clonados migraciones se benefician de esto vale vamos a entrar a otro concepto que es el sharding pero en este si ya lo voy a dejar para para esto lo vamos a estar viendo prácticamente en todo el curso sí pero bueno el sharding al final nada más como para que es que me interesa más bien ver el otro ejemplo de la arquitectura de la base de datos pdb pero bueno este concepto básicamente es algo así como hacer réplicas de una tabla no esas réplicas lo que nos permiten es de hecho el concepto es eso la escalabilidad horizontal que básicamente es particionamiento no de esa forma yo voy a poder tener la distribución de información a través de bases de datos que son independientes a eso se les conoce como shards para mejorar el rendimiento por un lado tenemos una arquitectura que nos dice que podemos centralizar todo y por otro lado nos dice que oracle también permite hacer escalamiento horizontal por medio de este concepto no del shard este concepto realmente es algo un poco más complejo y llevarlo a cabo en un demo es todavía mucho más porque porque una para que pudiéramos ver un resultado digamos aceptable incluso nada más para que pudiéramos ver un solo ejemplo tendríamos que tener una base de datos enorme para que pudiéramos ver cómo se beneficia el hecho del particionado y 2 hacer réplicas de bases de datos pues requiere mucho más hardware no requiere que tengamos muchas más instancias de bases de datos y demás entonces pues realmente esto también se va a hablar del concepto conceptualmente no no vamos a tener aquí un ejemplo digamos de comandos de cómo podemos tener una red de instancias de oracle corriendo porque realmente es muy es muy complejo digamos ambientar eso entonces esta parte pues solamente pero eso se encuentra a partir de la diapositiva número 40 el tema 2 de acceder a la base de datos pues ya lo vimos es acceder a sql plus y si ustedes gustan pueden ejecutar ya después este estos códigos en línea por línea esto lo que hace es le va a dar una un cómo decirlo un print al terminal cuando estemos dentro de sql plus para que no se ve así todo des cuadrado esto le va a dar un formato más bonito por así decirlo no y la parte de ese cual es developer pues bueno aquí se muestra cómo abrir la interfaz ya sale y bueno lo último que quería yo nada más ya se los dejo eso a su a su criterio igual lo podemos ver mañana lo vemos a ver mañana lo retomamos a partir de esta de esta línea pero básicamente este es el es un asistente de bsa que nos ayuda a crear bases de datos va con esto mañana vamos a ver cómo se interpreta todo este comando porque es una forma de crear una base de datos y la práctica de eso aquí se va a explicar cada uno de estos comandos mañana lo vamos a retomar de forma rápida aquí está la salida de ese déjenme quito el son poquito al 100% se va a ver la salida de ese de ese comando cómo se crea la nueva base de datos sí y con eso yo voy a poder conectarme o sea lo que creamos con ese comando que mañana vamos a ver es una base de datos cdb y una base de datos pdb entonces con eso vamos a tener ampliando el ejemplo que vimos ahorita hace rato digamos lo que nos faltaba era ver cómo se creaba esa base de datos es con esto ya teniendo eso ya puedo otra vez conectarme como si debe a la base de datos contenedora y por medio de alterar la sesión a la base de datos plug eebol aquí puedo incluso hacerle una consulta y eso pues nos va a traer resultados eso es lo que estaríamos viendo en estos temas que digo al final de cuentas pues los alcanzamos a todo bien perfecto muy bien entonces mañana continuamos con la parte del día 2 y este pues bueno les agradezco mucho la atención y verdaderas disculpas por las interrupciones no que que que di en él en la llamada listo pues si no hay nada más este pues es todo nos vemos mañana y muchas gracias gracias de un problema bien gracias gracias hasta luego
on 2024-02-06
language: ES
WEBVTT Si es más clara la instalación, por ejemplo, con Docker, con el Docker Compose, que de hecho es la que tendríamos que revisar para este ejemplo. Adelantaron. Te escucho. Ok. Perfecto. Sí, correcto. Una vez que tú ya tengas la base de datos y un usuario Sys, que siempre lo vamos a tener,
on 2024-02-06
language: ES
WEBVTT Para que nosotros podamos acceder al comando dbca, me debo de meter a esta ruta. La voy a poner ahí también en el Coucher. Eso viene ahí en la presentación. Entonces, yo me tengo que conectar a la instancia y luego me tengo que cambiar a esta ruta. CD, bin, bueno, hasta donde dice bin. Y ahí adentro ya se encuentra esa utilidad de pdb, perdón, de dbca. Allá adentro es donde tengo que ejecutar el comando. Y sería eso. A ver, voy a echar un vistazo a ver si los demás ya pudieron ver. Si quieres, nada más lleguen a esa ruta y todavía no lo ejecuten para que no se ejecute algo que no. Voy a monitorear. A ver, por ejemplo, Harold, ¿qué trae? Ah, perfecto. Ya lo cacho Harold. Vamos a ver si Aaron lo tiene. Perfecto, está conectando a la ruta. Jesús, León. A ver, deja ver a León. OK, igual se conectó a la ruta. Nada más ahí aguantenme, no voy a ejecutar el comando. Básicamente, a ver, si quieren, ahí hacemos una pequeña pausa para explicar lo que necesitábamos agregar en el comando. El requerimiento, básicamente, era crear el CDB, pero, más bien, crear el PDB, pero dentro del CDB que ya creamos conforme el Docker, el Docker que teníamos. Entonces, si yo me voy acá al Docker, o sea, en el comando que tenemos en la diapositiva número 42, el CDB se llama de esta forma. Yo lo que les pedía era que creáramos un nuevo PDB dentro de este, del CDB que ya habíamos creado en el Docker. Entonces, por ahí vi que Harold sí lo agregó. Es decir, nosotros necesitábamos identificar en este archivo cuál era el CDB. Y en este archivo el CDB que yo tengo es este. Entonces, este de aquí me lo tengo que copiar y me lo voy a llevar al comando que se encuentra en la línea en la diapositiva 42, que es este. Y voy a reemplazar la parte donde dice New World CLCDB. Todo donde diga eso lo reemplazo por el comando, mejor dicho, el CDB que estamos ocupando. Y teniendo eso ya le puedes especificar tú el password que quieras y el PDB ya lo puedes llamar como tú quieras. Incluso se puede quedar, ah, bueno, lo que dicen, ¿no? El requerimiento de sus iniciales y demás. Pero el CDB sí tiene que ser este. Ven ahí, Harold, esa sí la, sí vi que tenías ahí armado el comando. Entonces, ya veo que todos lo cambiaron y ya lo podríamos ejecutar ahí en la ropa. Acá está mi distancia. Voy a cerrar esto. Y, bueno, también voy a conectar la distancia. Ahí estoy. Y ahora me voy a meter acá. OK, bueno, a esta parte, ¿alguien ya intentó ejecutar el comando? OK. Bueno. Ah, de hecho, Jesús ya lo intentó. Es correcto. Ya lo, ya te sé, ya llegaste al punto, Jesús. OK. Básicamente eso, como te das cuenta, Jesús, no te deja porque, obviamente, pues esa base de datos ya existe, ¿no? Si nosotros quisiéramos añadirle una nueva, tendríamos que usar los comandos que decíamos de modificación. Este comando es más que nada para cuando es una instalación nueva, ¿no? Entonces, ahí a lo mejor lo que conviene sería cambiarle el nombre de la base de datos. Entonces, si no, si no existiera esa base de datos, o dicho de otra forma, si no hubiéramos creado todo esto desde el Docker Compose, este comando nos funciona para hacerlo la primera vez. En este caso, como con Docker ya lo teníamos, que es a donde quería llegar, pues, ya lo teníamos, ya lo teníamos. Y ahora, si no, si no, si no, si no, si no, si no, si no, si no, si no, si no, si no, si no, ya lo teníamos, que es a donde quería llegar, iba a mandar este error, no nos iba a dejar, ¿no? Es como para que tuviéramos noción de las formas que se puede crear este CDB o intentos, uno es por el Docker Compose, otro es ya dentro de la instancia y crearlo. Una forma es que una cosa es creación y la otra es la modificación, el alter, que vienen en los comandos de las posteriores, ¿va? Entonces, este, igual, quien ya después intente ejecutar el comando se va a dar cuenta de que, pues, no los deja porque ya existe, ¿no? Y, bueno, a manera de práctica, si quieren crear una nueva, ya le podrían cambiar el nombre al CDB. Ya no tiene que ser ni el New World, no sé qué, ni el CDB. Ya pueden ponerle algún otro, a lo mejor algo que haya dado referencia a su nombre, ¿va? Y con eso ya el comando le debería de crear la.
on 2024-02-06
language: ES
WEBVTT mandó el error. Aarón también. Aarón también. De hecho, Aarón ya le cambió el nombre y ya nos está metiendo ahí la información. Ahí se va a tardar un poquito, Aarón. Este se va a tardar un poquito, pero bueno, ya tu base de datos ya se está creando. Perfecto. Listo, vamos a seguir viendo. ¿Quién más ya pudo ejecutar el comando? León ya lo logró. Perfecto. Aarón también. Y Orlando ahí va. Jesús, Jesús creo que ya lo había hecho. Y Harold también. A ver, déjame ver que. Es que aquí no me deja. Ah, es que esta cosa sí. Empalma con la Mac. No me deja abrir esta ventana. Ya. Listo, vamos a ver. Ahí puedes copiar todo el comando de un jalón. Harold. Bueno, ahorita ya lo copiaste línea por línea, pero lo podías haber copiado así completito. Sí. Bueno, de hecho, ahí es donde te va a fallar porque no has cambiado el CDB. A ejecutarlo y tú mismo no te cuentes. Ejecuta ese flag. Sí, mejor intenta copiarlo todo de cajón, de un jalón. Porfa, no? Ahí puedes darle un clear tal vez y para que no te haga daño la vista con tanto texto. Correcto. Y intenta copiarlo todo. Así tal cual tienes el comando. Completito. Bueno, eso te fue una D. Ahí está. Correcto. Entonces, esto te lo traes a la terminal. Ahí le puedes dar clic derecho a copiar. Que luego ahí están medio raros los comandos. Se confunde. Ahí le das clic derecho a copiar y ahí la pegas. Clic derecho, pega. Andale. Y le das enter. Ah, pero sí te cambiaste a la ruta. Creo que sí. OK. Haciendo eso, creo que ahí ya está reaccionando y ahí ya te dice el warning que decíamos. Esto es porque ya teníamos creado el CDB cuando lo hicimos con Docker, lo que explicaba ahorita. Entonces, para eso tú tendrías que cambiarle un nombre diferente a ese CDB. O usar uno de los comandos de alter que vimos en la presentación. Entonces, ahí le puedes cambiar. Ahí nada más le puedes cambiar el nombre donde dice ORLSDB. Ponle un 1 al final. No sé. Un nombre que te guste a ti. Es una nueva base. Desde cero. Andale con tu inicial. E igual ahí. Y con eso ya lo ejecutas y te va a crear la base de datos. Perfecto. Ahí le puedes dar enter y ahora sí ya te tiene que generar.
on 2024-02-06
language: ES
WEBVTT y ya refrescan aquí la instancia del navegador, con eso es que luego como que se queda ahí pasmado, me di cuenta de eso. Y ya con eso debería darles la respuesta. Luego, ¿cómo puedo ver esos archivos? Bueno, en un entorno de base de datos, el SP file, o server parameter file, y el P file, o parameter file, son archivos cruciales que almacenan parámetros de configuración de la instancia. ¿Dónde los encontramos? En este entorno que está dockerizado. Las ubicaciones pueden variar ligeramente según se haya configurado una la, bueno, lo que dice aquí, sí, y yo voy a ver, decíamos que queremos ver la ruta de los archivos de configuración. Voy a ver qué pasa si yo ejecuto este comando directamente ya en mi instancia. Voy a tratar de pasarlo por Codeshare. Hasta arriba voy a ir poniendo como las cosas que se ocupan bueno, bueno ¿Me escuchan? Listo. Hola, ¿quién habló? ¿Leon? Ah, ¿qué onda Leon? ¿Ibas a comentar algo? Ah, mi hola, listo. Bien, entonces, bien, entonces, este, sale. Entonces, voy a volver a compartir pantalla. Ah, ok, va, eso es de ayer. Perfecto. Entonces, este, creo que Harald, si estás por ahí, creo que tenías alguna duda, inquietud, que me decías que te habías trabado con algo. Ok, así le agarraste el, ah, perfecto. Ok, va, no, no, no, de nada. Sí, es que a veces me tengo que salir porque, este, hay comandos que se ejecutan, no dentro de la base, y este, como por ejemplo estos de entrada a las rutas y demás. Entonces, hay que estar este entrando o saliendo, pero tal vez también, tal vez también este podrías tú tener una terminal, no, una pestaña extra en donde sea exclusivamente para, este, las conexiones a SQL plus y en la otra donde haya comandos así como diferentes, no, de dentro de la instancia. Y pues bueno, esto es lo que podemos deducir o especificar o encontrar aquí dentro del contenido de esta archivo. Eso es lo que nos estaría diciendo. Entonces, si nosotros quisiéramos hacerle alguna modificación a alguno de estos parámetros, podríamos utilizar este comando. Este comando directo nos ayuda a modificar estos parámetros que nosotros tenemos acá. Y básicamente es este comando, alter system set, metemos el número del parámetro, su valor y su alcance es SP file. Después de cambiar esos parámetros con alter system, vamos a reiniciar la base de datos para que esos cambios vean, tomen efecto. Sale, entonces este aquí lo que nos hace la recomendación es que siempre hagamos esto. Siempre que queramos configurar esto, chequemos el archivo, veamos su contenido y lo guardemos en algún lugar como para poder regresarnos a la versión anterior en caso de que algo no esté funcionando bien o demás, algo que hayamos modificado y que veamos que está dando algún problema. Listo, después de esto continuamos con la parte de apagado de la instancia. Bueno, antes de eso creo que no ejecutamos nada más se dijo este comando. Este comando, start up, no está tan complicado de aprendérselo, creo que lo podemos ejecutar. Si yo ejecuto aquí start up, aquí de hecho ya nos dice, el mensaje nos dice, no puedo iniciarlo porque ya existe, ya está corriendo. Entonces eso quiere decir que yo la instancia, como ya la tengo corriendo, pues no va a tener algún efecto. Para eso, para que yo pueda levantarla y ver qué sucede, lo que primero tendría que hacer, de hecho ahí el mensaje nos lo dice, apaga la instancia primero, entonces eso lo podemos hacer con este comando. El shutdown immediate, entonces puedo ejecutar shutdown immediate, creo que aquí hay algo mal, es immediate, ahora es lo que no me gusta de esto. Ahora va de nuevo, es shutdown, creo que lo más fácil es copiar, pegar, immediate. Haciendo eso es que aquí me equivoqué por la N, ya estaría yo aquí apagando lo que es la instancia. Y vamos a estar ahí viendo qué es lo que hace, aquí ya te está diciendo que se está cerrando, vamos a poner atención a esta salida, porque Oracle define tipos de apagado, entonces esto de hecho, el que está haciendo el immediate, está cerrando la base de datos, la está desmontando y aquí ya te dice que ya se apagó finalmente. Ahorita la vamos a volver a iniciar con el comando startup, pero antes de eso vamos a leer un poquito de los diferentes modos de apagado y sobre todo compararlos. Entonces, como les decía, ofrece varios modos y tiene cada uno un uso propio y algún comportamiento en específico, eso lo dice acá. Por ejemplo, un shutdown normal hace que Oracle cierre la base de datos de manera ordenada, no permite nuevas conexiones, pero espera que todas las actuales se desconecten. El transactional es un similar a la base, al apagado normal, pero Oracle espera que las transacciones actuales se completen y no permiten nuevas, ¿no? Entonces, ¿qué significa esto? Que si yo estoy teniendo alguna transacción sobre la base, aplicar ese flag de transactional o parámetro u opción al apagado va a hacer que las que estén vivas se completen. Voy a esperarlas, ¿sí? No voy a aceptar nuevas y las que tenía activas en curso, voy a esperar a que se acaben, ¿no? El e-media, que es el que yo acabo de ejecutar, lo que va a hacer es que la va a apagar, digamos, al chasquilo, ¿no? Inmediato. Todo lo que está en curso lo voy a quitar, lo voy a deshacer y voy a desconectar a los usuarios, voy a cerrar la base de datos y es más rápido que el modo normal y el transaccionar. Ahorita ustedes pueden ejecutar, va a ser un pequeño ejercicio. Cada uno va a ejecutar un apagado de forma diferente, un normal, un transaccional, yo ya ejecuté el e-media y vamos a ir viendo ahí como que las salidas. El otro y último es el abort. Es el más rápido pero el menos seguro. ¿Qué hace? Oracle detiene inmediatamente la instancia y no espera nada, ¿no? Está montada y lista para recibir transacciones, ¿no? Para que vuelvan a funcionar como se espera. Entonces, no sé si haya alguna duda, yo ya me voy a salir incluso para poder limpiar la pantalla. No sé si haya duda con esto de los modos de apagado, cómo se enciende, con respecto a esto. Si no, ayúdenme, alguien que ejecute el comando apagado normal, otra persona que me ayude a ejecutar el transaccional y otro el abort y otros dos que repitan a lo mejor el e-media y no sé, cualquiera, elijan uno, ¿no? Entonces, elijamos cada quien uno y vemos que aparece, ¿va? Yo me voy a conectar aquí a sus instancias, bueno, la instancia del desktop y voy a ir viendo a ver qué salidas da, ¿va? Y entre todos vemos qué salidas da. Listo, entonces, a ver, ya veo que se están conectando, se conectó a la base y le dio startup. Ese startup no lo puedes ejecutar porque incluso el mensaje te dice que hay que apagarla primero, ¿no? Entonces, a ver, si quieres tú, Aaron, ayúdame a ejecutar. En la presentación viene el apagado transaccional. ¿Qué te parece si lo ejecutas? Bien, entonces, Aaron se va a ejecutar el transaccional. Luego por ahí veo a Orlando, Orlando, Florida, ya te conectaste, estás intentando ejecutar el startup, pero no te deja porque está corriendo, se va a que apagarlo primero, ¿no? Entonces, vas a ejecutar. Si quieres tú ejecuta el comando, porfa, ayúdanos. El e-media y ya lo pagamos, ¿no? Transaccional lo va a hacer Aaron. Entonces, te voy a ejecutarlo con el flag normal, por favor. Bien, perfecto. Entonces, Orlando nos va a ayudar con el normal. Vamos a ver Harold, Harold, ¿qué? ¿Qué hizo? El e-mediate, bueno, hicimos el mismo. Ah, no, ya lo está ejecutado con el normal. Perfecto, ahí leyendo lo que dice, pues te dice quién tarda más que otros y demás, ¿no? Listo, y ya nada más falta Jesús, a Jesús. A ver, vamos a ver con Jesús. Ah, ok, Jesús va a ejecutar el abort. Y listo, ahí falta el WN, shutdown. Y va a ejecutar el abort. Correcto, entonces ahí se está ejecutando y ya te dijo que ya se apagó, ¿no? Es como el más brusco ese y el más rápido, si te fijaste, ¿no? Eso lo ejecutó de volada. Y León está ayudando con el e-mediate, ¿ok? Ya lo está pagando y ahí pues ya no va a ir desconectando. Ya que todos tengan su salida, mira, ya te está diciendo, ¿no? Como lo cierran, lo desmonten y demás. Entonces, ya después de que lo bajen, lo vuelven a iniciar, ¿no? Con el startup, para que no se dé olvida levantarla, para que puedan continuar con los ejercicios. Pero bien, ahorita ya todos lo ejecutaron de formas diferentes. Y, pues bueno, ahí vemos la ejecución. Perfecto. Harold está haciendo la shutdown normal. Y bien, entonces, bueno, ese es el concepto de que hay formas de apagar la instancia. Y ya podemos ver o identificar en qué escenarios podemos ocupar una u otra. Entonces, voy a dar ahí un minutito o dos para que se levanten sus instancias otra vez con el startup. Y que no se tarden. A ver, quería ver la de Jesús porque tú la desaste con el abort. A ver, vamos a ejecutar startup, a ver qué tanto se tarda. Start, una T y luego la U, P. Exacto. Ah, levanta. O sea, nada más lo que hace rápido es el abort. ¿No? Lo apaga de volada. Y el iniciado, pues es este. A mí se me hizo igual rápido. Pero bueno, igual es porque no tiene mucho ahí. Y bueno, esa salida que ven cuando se levanta la instancia es la que trata. Jala, perdón, del archivo de este. El S.P. File, no el archivo de configuración. Muy bien, Jesús, ahí ya quedó tu. Tu ejercicio. Ok. Pues creo que ya todos le. Ah, ya por ejemplo, Leon también la levantó. Ya también Orlando. Harold está haciendo el apagado de shutdown normal. Si se está tardando todavía. Y Harold ya también la abrió. Ahí ya nada más este. Harold será quien nos alcance. ¿Por qué el tutorial tarda más? Porque bueno, aquí lo dice. Cierra la base de datos de manera ordenada. Entonces se está tardando en ordenar. No va a permitir nuevas conexiones y las que están activas, pues. Está esperando a que este se desconecta. Entonces ese comando se va a tardar ahí. Un poquito. Va, ¿Quién me habló? Perdón, déjame mover acá. Harold, échale, dime. Option. Ok. Si es que ahí te pasó como a mí. Le pusiste inmediate y es sin la N es con doble M. Inmediate. Ajá. Sí. Va. Perfecto. Ahí está. Si es que es después de que acabe tu comando es que tú, tú, ha tocado el más este, el más tardado. Lo ejecutamos con el inmediate y ahí te fijas. Bien, todos. Sale. Entonces, una vez que la instancia levante. Vamos a poder abrir y cerrar PDB es que ya tenemos más claro el concepto de lo que es un PDB que básicamente es una base de datos contenida dentro de un CDB dentro de un container database. Ok. Y este concepto cuando hablamos de PDB y CDB estamos aplicando el multitec. No de ahora. Ok. Entonces aquí nos dice. Que yo puedo abrir y apagar. Cada una de las bases de forma. Y cómo decirlo puedo abrir las y se dan las para abrirlas. No es más que conectarme con este comando y literal es meterme a esta conexión. Sí. Yo no agregar esto ya la puedo abrir o también no sé si se acuerdan el comando permite hacerlo. De hecho eso lo tenemos en los comandos que voy a volver a abrir. En los primeros. Bueno, aquí la parte más bien en los de hoy los de conexión en la parte de hoy. El día de hoy tenemos varias formas de conectarnos, no? Que es básicamente lo que ven ahí. Entonces aquí nosotros podemos meternos, por ejemplo, a un a una instancia con si debe a después de eso puedo conectarme. Por ejemplo, creo que ahorita tiene más relevancia meternos a este. O el PDB 1 que es donde yo puedo ver mi tabla de mi instancia vaya de que instalé. No vamos a hacer ese ejemplo. Si yo ejecuto como si debe a. Va y me conecto. A la instancia. Y ya me conecté aquí adentro. Yo puedo decirle el alter session. Si yo ejecuto este alter session antes de eso voy a ejecutar este otro comando. Todos estos están ahí en el archivo que les pasé. Los pueden nada más los identifican donde dice conexiones. Y ahí vienen varias conexiones, formas de conectarse. Si yo ejecuto, por ejemplo, esto aquí me dice que no hay ningún usuario del tipo username. Ok, entonces qué pasa cuando yo hago el intersession? Déjame ver si tiene aquí la conexión. Creo que no me conecté a la instancia correcta. Ahí ya me dice sección alterada. Si no la tuviera, no me dejaría ni siquiera entrar. Y si yo pusiera, a ver si puedo ejecutar este otro comando. Dentro de esta sección que se altera. Si se fijan cuando yo entré. De hecho esto lo vamos a volver a hacer para que se vea con mayor claridad. Si yo me conecto a la instancia de la base de datos como si debe a. De hecho me voy a conectar. Esta forma cualquiera de las dos equivalentes. Si se vea. Me conecto. Y ahí estoy adentro de la base de datos. Con ese comando yo voy a buscar un usuario que se llama HR. Ahorita voy a hacer. Aquí yo le puse un web. Y no me da nada. ¿Qué pasa? Reusar comandos. ¿Qué pasa si yo le quitar a ese web? Si yo le quito ese web. Ahí yo estaba buscando muy en específico el usuario. HR. Que se debió haber instalado con mi esquema. Si yo lo quito. Aquí me dice todos los usuarios. Y me dicen quién está. Mira. Está este y está bloqueado. Está este, está bloqueado, está el noces. Me dice varios usuarios. Pero no encuentra mi usuario HR. Que es el que a mí me interesa. ¿Por qué no lo encuentra? Aquí es donde se ve claramente el concepto del PDB. ¿No? En este caso yo estoy dentro de una CDB. Y lo que yo necesito es entrar a su base de datos interna. ¿Sí? Para eso yo voy a hacer este altercession. Entonces al meter este altercession. Como yo ya había emitido. Gracias al contenedor de Docker. La PDB. Interna. Y yo lo ejecuto. Ahí ya me cambió la sesión. Ya no estoy dentro de acá. ¿Sí? Ahora, ¿qué va a pasar si yo le pregunto y le digo. Ahora sí vuelve a decirme. Si existe el usuario HR. Ajá. Si se fijan en la misma conexión. Al principio no me salió. Sino que hasta que yo me cambié al contenedor a la PDB. Ahora sí. Me sale el usuario y me dice cómo está conectado. Mismo caso. ¿Qué va a pasar si yo ejecuto. Y le pregunto por los usuarios. No exclusivamente el de HR. O sea quitamos ese word. Y aquí me dice igual. Todos los usuarios que tiene. Ahí nada más es cuestión de manipular con el scrn. Y bueno. Ahí voy a tener todos los usuarios que están listados. Una vez que yo tengo esto. Ahorita vamos a entrar en otros comandos. Un poquito más útiles. Como por ejemplo. Esto de acá. De los comandos que los PDB que tienen. De hecho lo vamos a hacer de una vez. Ya que estamos aquí adentro. Sí. Ah bueno. Nada más para terminar. Yo hice mi username. De mi tabla users. Y yo ahí adentro ya. Ya puedo ver por ejemplo. Mi base de datos. Lo que yo puedo ejecutar. Ok. Aquí no existe porque tengo que conectarme. Con mi usuario. Entonces yo me voy a salir. Y me voy a salir de la instancia. Ya conectándome con el usuario. HR. Pude entrar la contraseña. Y si yo me conecto. Y ahora si. Quisiera yo ejecutar. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Y ahora si. Perfecto. Entonces 12 y 18 Nos conectamos para darnos un respiro Y pues aprovechamos Estos 10 minutos Nos vemos ahorita Bueno, bueno Listo Sale, a ver, entonces Voy a compartir pantalla Listo No se si hay alguna Duda o inquietud con lo que hemos visto Hasta ahorita, sino para que continuamos Va Bien, entonces este Bueno, cualquier cosa me avisan sin Ok, entonces Vamos a hablar de otro concepto Que es el Repositorio de diagnóstico automático También llamado ADR También llamado ADR Este Es un componente crítico Para la gestión de diagnósticos en la base de datos de oracol Armacena Archivos de traza Dumps, alertas y registros De salud De nuestra base La funcionalidad de esto Es que nos permite identificar Y diagnosticar problemas De la base de datos de manera eficiente Nada mas como para no perder el foco Recordemos que Estamos en el 68 Todo esto que estamos viendo Corresponde a la parte De El ADR esta Acá Con las instancias de la base de datos Administrando instancias, va Entonces vamos a ver La diapositiva 68 Continuamos Entonces bueno, nos esta diciendo Que podemos aplicar Esta herramienta Monitoriando Con el esquema que trabajamos Para identificar algún problema De rendimiento Errores en operaciones con datos Del esquema y demas Es una característica de oracol Que se centra en todo esto Recopilar, gestionar Y analizar datos de diagnostico Para problemas de la base ADR simplifica la tarea de diagnosticar problemas Armazenando archivos de traza Dumps, alertas y información De salud de la base de datos En una estructura de directorios Que esta unificada La ubicación de este archivo Aquí lo tenemos Como un parametro Es un parametro de inicialización De oracol Esta ubicación dentro del contenedor Esta ubicación Es dentro del contenedor de la base de datos Acá, no? Opt oracol Diag Entonces aquí nos da un ejemplo De como yo puedo Entrar Y pues básicamente es esto Yo puedo meterme aquí Igual a la instancia Hay una herramienta Que se llama ADRCI Y a ver Vamos a probar esto Entonces, de igual De forma rápida yo me voy a conectar Aquí está La máquina Sigue limpia, está ya respondiendo Si yo me meto aquí A la instancia Este con el mismo comando Que ya hemos este Manejado Bueno había uno más Directo Yo ya me meto incluso Ah no, pero es que estoy metiendo Ese cuelio, no Lo voy a meter a la instancia nada más Entonces para conectarme A la instancia de ad-docker Vaya al contenedor mejor dicho Es con este comando Que por aquí pasamos, que es este Y hasta allá adentro Yo voy a poder ejecutar Dentro del contenedor Por ejemplo, esta línea de comando A ver vamos a ver si la puedo ejecutar Que es ADRCI Es que no sé si tenga que estar dentro de algún bin No, aquí estoy Entonces aquí dentro de Simplemente conectándome a la instancia Ya está conectado a esta herramienta Si yo ocupo El HOMS Vamos a poder, esos comandos están No son necesarios todos los metiendo Y pues bueno, aquí me está diciendo Todas las rutas hacia donde yo Puedo este Y aquí me está diciendo Que no se puede ver Digamos información Aquí esta información Nos dice que Aquí podemos Cachar la que corresponde con nuestra Instancia de la base de datos En este caso ya bien que hemos estado creando varias bases La base de datos que Corresponde con nuestro En la instalación de nuestro De nuestro docker Compose, pues es esta Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos Que es nuestra base de datos No lo agregué Es show alert Es que esta muy este Chiquito el comando como para que Se lo pueda meter Entonces si nosotros nos fijamos Aquí nos esta dando este comando Ya información Nos esta diciendo Y este Pues bueno de hecho aquí esta Guardando todas las cosas Que hemos estado generando Aquí hicimos los alters Que estuvimos agregando información Metimos este Internamente Empezó a meter información Cuando cargamos los esquemas De la base de datos, conecto A Tribal Spaces, aquí hizo varias Cosas este internamente Nuestra base de datos y pues bueno aquí Nos esta re-importando Pues esta información que guarda Los registros de De esta herramienta Son los logs y las alertas Entonces todo lo que en algún momento Alertó la base de datos Pues aquí lo esta guardando Y nosotros podemos Este Bueno este show trace file creo que Nos lo hemos ejecutado Vamos a ponerlo A ver si Creo que Ahí esta Aquí nosotros vemos todos los archivos De traza que ha estado generándose Desde que creamos nuestra conexión Nuestra base de datos Llamada ORCLSDB Que básicamente son todas las Trazas que tenemos desde ayer Bueno incluso yo Desde un poco antes que yo creé La base de datos este Pues desde hace un tiempo ya Más atrás tenemos ahí logs, tenemos archivos De traza, entonces toda esa información La vamos a poder tener acá Y gracias a la simpleza de este Comando o esta utilidad que se llama ADRCI Va Es el Automatic Diagnostic repository Common Interface Es lo que significa el ADRCI Y pues bueno de esta forma Podemos manipular ese tipo De información y muy directamente Con nuestra base de Datos nuestra instancia Dice aquí Un ejemplo supongamos que estamos experimentando Problemas con operaciones en el esquema Y necesitamos revisarnos los Problemas que estamos presentes Vamos a acceder a ADR Al ADR como se Describió Y vamos a localizar y realizar el log De alertas para ver si hay Mensajes relacionados Con errores y operaciones En el esquema Para eso aquí te dice Que puedes también gestionar Incidentes, es decir Errores que son específicos Y que han sido capturados por la base de datos O Teniendo un agrupamiento de uno más incidentes Que comparten la misma causa Son los mensajes por ejemplo que veíamos Ahorita de que el Inmediate lo metimos con Con L en vez de con Doble M y ahí mando errores y demás Todo eso lo vamos a poder ir Revisando acá Como te digo Están relapsed los comandos entonces Los podemos copiar directamente Ejecutar mejor dicho no directamente Una vez que yo setee cuál es el Home El ADR Home Aquí me está diciendo incluso Los problemas me dan un key Que si se acuerdan es como Como te lo representan Ahora punto no sé qué Te dice cuál fue la ID del incidente Aquí te los va a ir agrupando Y también la fecha en la que se creó Entonces todo esto sirve y ayuda realmente A tener un monitoreo sobre la base Sobre los incidentes Y además De forma más ordenada Aquí tenemos otro comando que es el Problem Y muy en específico Este nos dice por ejemplo Que el problema de todo esto que ha ocasionado De hecho el agrupado es este El ORA 800 Aquí nos dice el último incidente Y demás Esto ya lo podríamos buscar en un diccionario de Problems Y ver a qué se refiere Uso eficaz de esta herramienta Es fundamental para la administración Sobre todo De la base de datos Nos permite identificar causas de los problemas Agilizando resolución de incidentes Va Entonces vamos a simular Un conflicto Que se puede rastrear Usando esta línea de comando Esta interfaz dentro de la Human Resources Este lo podemos ir Haciendo igual Como un ejercicio Veramente Podemos ejecutar una operación Que va a fallar Debido a una restricción de integridades O alguna roja similar Un ejemplo de esto Puede ser A intentar insertar un registro duplicado En una tabla Que tenga una clave primaria O una restricción de unicidad Entonces aquí nos dice Que la tabla de empleados Tiene una columna empleado ID Que es una clave primaria Y intentar insertar un nuevo empleado Que ya existe nos va a provocar un error de violación Vamos a ejecutar estos comandos Va Entonces para eso Si recuerdan aquí tenemos un Comando directamente Que nos permite Acceder Al esquema Dejenme ver porque aquí Se me trago Nos permite acceder al esquema Incluso yo lo voy a acceder desde otra Terminal Haciendo eso yo me puedo Meter a la Instancia y puedo ejecutar por ejemplo Este comando En donde Ah no me deja Estos sí los voy a agregar Al couch Al couch Más largos Va Entonces si lo agrego aquí al couch Lo voy a poner Hasta arriba Va Entonces esto de acá lo copio De directamente del couch Aquí expiro la sesión La voy a A recargar Vamos a ver que Cargue que luego Hay veces que esto medio se traba Vamos a reiniciar a verla La conexión que tal Ya se cayó el couch Ah bueno ahí está Entonces Eso me permite A mí ya copiar este Comando y ejecutarlo Tal cual Voy a ver cuál es el empleado El último ID que se insertó Que tiene El 206 Que te parece si hacemos Un insert Este insert tal vez falle En la línea de comando Entonces es que medio Se está trabando el couch Voy a esperar a que cargue otra vez Y más bien el código Lo voy a pasar al Blog de notas interna Ahí está Entonces mejor para que no se me vuelva a trabar Lo voy a dejar ahí Por si ustedes también quieren Este Ah es que Luego hace estas cosas Coucher Como que se muere Pero bueno a ver Ya lo alcancé a copiar ahorita lo regreso Para que de hecho sabes que creo que es Más bien mi conexión Porque aquí también ya se me está Trabando la Interfaz A ver déjame ver si puedo crear Pero no sé Ah no no no no se me está Trabando es que estoy en esta Pero estoy intentando Entrar en la misma entonces No tiene sentido Lo voy a agregar incluso En una nueva pestaña Y ahí está Entonces aquí Este comando lo que quería hacer era Cambiarlo acá Y aquí voy a volver a darle Un control z ahí está Ya por si lo quieren ustedes también ahí ocupar Entonces este comando Si yo lo intento ejecutar Seguramente me va a mandar Pues un error Porque ya existe un usuario Con el id 206 Ahí nos dice Esto ya no sirve Porque bueno más bien No te deja hacerlo Porque pues eso ya este Ya existe Entonces este es el mismo La misma instancia entonces ahí no hay problema Luego Nos dice aquí mira por ejemplo Este Comando no me había fijado está mal Ahí está Y podemos hacer El trace file Kf Ah pero creo que este es un Es un parámetro O como se agrega Ah no me equivoco ese es sin la F Es show Trace file Gion tail Ok a ver es show Trace file Gion tail Y A ver una vez Identificado bueno es que aquí el comando Lo teníamos más Fácil Es show funds Show alert Show trace file Creo que ahí tiene un problema Los comandos Error de Sintaxis Encontrado en la cabina Creo que si es más fácil Copiar y pegar más 10 comandos Pero bueno sirve para que podamos hacer eso Ahí se están guardando todos los Traces como ya los habíamos visto Y la Este Aquí se debió haber agregado algo Nuevo a los incidentes No Ahí podemos buscar un comando En específico ese fue un alert Vamos a ver que nos imprime El alert El puro alert si agregamos El Gion tail Y ahorita hacemos la corrección también Ahí en el En el este En el archivo Y vamos a estar aquí buscando Que es lo que está creo que no Creo que no lo va a reportar por una razón Esta base de datos Y Nos conectamos al pdb y no Al cdb entonces Esa puede ser una Razón del porque no se está viendo Pero vamos a enfocar que más Viene por acá no? Probablemente acá lo Podemos ver La otra que quería revisar es esta El show incident Y el show problem Ok Aquí se agregó parece ser que es porque Estamos en el cdb Entonces muy probablemente tendríamos Que setear el home a ver Probablemente es eso si agregamos Los homes Probablemente aquí Vamos a ver Es que quiero ver cuando Nos sale una lista de más homes Creo que fue por el tema De hacer un set Aquí Ok Aquí están todos los Al agregar esto Nosotros agregamos este cdb Pero Ok no estoy viendo el pdb Que estamos mapeando Es que esa instancia está corriendo Dentro del pdb de hecho Lo podemos ver cuando Nos conectamos por acá A pdb1 Por eso es que no lo estoy Mapeando porque yo me conecte a Este de acá pero lo que no veo Es porque al mostrar este Home no me está mostrando ese Pdb Otra cosa que podríamos haber hecho Es crear dentro de la instancia De acá o sea meternos al CDB con el usuario Admin ahí Ejecutar algún error y Yo haría esta corrección para que el Ejecutar el ejercicio quede Quede completo Pero podríamos intentar Modificar o sea conectarnos más bien como Si es al CDB En donde estamos trabajando Y con eso Estar revisando los errores Lo que quería ver aquí es si fíjate que si me da duda Eso porque nos está mostrando aquí Ese home Del pdb Entonces bueno esa parte me la voy a llevar Para corregirla Y de hecho si yo lo agrego acá La violación es esta Si Otra puede ser Que estoy en una Pestaña diferente bueno eso lo voy a Revisar para no invertir Más tiempo ahí Entonces Este bueno Eso es como se ocuparía ADR Digamos en un ejemplo en particular Aquí bueno por el tema de que No se logró mapear Con el pdb que ocupamos En donde teníamos la trance y en donde Digamos provocamos el error No pudimos revisarlo Pero a ver Quiero revisar otra cosa Trace file A ver lo que también Podemos hacer es Un trc De alguno de estos que tenemos acá A ver voy a agarrarme a este Nada más como para ver que contiene Y voy a agregar un Show trace file Y voy a agregar ese comando Esa ruta Ahí no mando nada entonces quiere decir que ahí no está guardando Ningún archivo O sea ningún problema Entonces A ver Aquí tenemos otra información otro comando Dice En los archivos de traza buscamos información Que te ayude a diagnosticar problemas específicos En base a la base de datos como Errores de ejecución Estadísticas de rendimiento De consultas o detalles de bloqueo Ejemplos de lo que podrías buscar Incluyen mensajes de error como de este tipo Vamos a hacer un paso a paso Supongamos que deseamos diagnosticar el rendimiento de una consulta Hacemos esta parte pero mira Aquí es lo mismo parece Nos estamos conectando al mismo Este esquema A ver nada más déjame ver si abajo Nos dice otra forma de De no revisarlo A ver vamos a ejecutar esto Que pasa Si yo esto Lo ejecuto Directamente acá Y pego este archivo Y voy a ver que este comando Este es el que quería llegar Porque este de aquí Tiene una expresión regular Según yo ese debería haber copiado Y este de aquí Lo tendría que ejecutar Dentro del bash, ah bueno Esto me puede salir Acá me voy a salir Y aquí que me conecte Y ya está, la mera instancia de oracol Puedo ejecutar esto Si no está encontrando Registros, entonces Déjame ver primero que pasa si yo me muevo esta ruta Donde está esto de acá Y vamos a ver que archivos tiene Porque a lo mejor la regex No encuentra ningún archivo Entonces Está buscando hr3 No, aquí no va a encontrar los archivos tras Ok, mira todo esta Toda esta información de este ejercicio Lo vamos a Lo vamos a corregir Para que lo podamos revisar Porque incluso esto de acá Este grep No está instalado en el En el En el contenedor Entonces tampoco creo que lo podamos Ejecutar A ver, déjame agregar Esto acá, nada más como Para ver si De alguna forma sirve de este mecanismo Este de aquí que tenemos dentro De donde están los trace id Podemos hacer Que Bueno, esto lo tendríamos que ejecutar Aquí adentro Ajá, por ejemplo estos trace id Que están acá Que estará en esta ruta Le voy a copiar Y a ver, qué pasa si modifico esto acá Voy a quitar esto Se supone que ahí están mis Mis trace id Y aquí voy a ejecutar No, en esto se ejecuta ya de este lado A ver si encuentra el path Sí, no, no lo va a encontrar Ajá, ok Trace file Trace file Trace file Trace file Trace file Trace file Y no sé si lo ejecute aquí Ajá Sin errores sin taxis Ok, sí, voy a tener que revisar esta parte Ahorita, esto último No hay que tomarlo tan en consideración Lo voy a revisar Para que podamos este Completar el error El error propuesto, el Completar el ejercicio propuesto O sea, básicamente lo que queremos hacer es Ocasionar intencionalmente Un problema, por ejemplo El de violación de base de datos Por id Por violación de Constraint Y poder revisarlo en nuestros archivos de De visualización, va? Entonces, de ese no vamos a perder Foco, lo revisamos Mañana Y, pues bueno, ahorita para no invertir más tiempo En esa parte Vamos a continuar esa parte La vamos a saltar, pero bueno Lo que quiero que quede claro es como que Que es lo que tenemos que Que es lo que queremos buscar Aquí, por ejemplo Bueno, aquí es otro ejemplo Podemos monitorear Una consulta que tomó Demasiado tiempo, demás Entonces, vamos a estar revisando estos archivos de Traza Metiendo, incluso esto es una expresión Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Que es un archivo de traza Y ahora vamos a revisar OK Luego Tenemos otro archivo Que es un archivo de log DDL Ya los últimos 12 minutos que nos queda Aquí como tal Nos dice que Oracle también Permite registrar este tipo de operaciones Los DDL Que son las siglas De Data Definition Language En un archivo de log Entonces eso nos ayuda a facilitar El experimento de cambios que son estructurales Por estructurales nos referimos a Todo lo que es definition language Los create tables Todos los antitebos Todo lo que nos permite modificar la información De los objetos De la instancia o de la base Ventajas de esto Es que nos ayuda a auditar Y advertir cambios que no son deseados O en un ejemplo aquí con HR Que es lo que va a pasar Oracle permite registrar Este tipo de operaciones Para auditar O revisar cambios estructurales En la base Como vamos a registrar y revisar Esas operaciones Vamos a habilitar el registro DDL Como tal, aquí es lo que Quería llegar Oracle no tiene Por defecto habilitado ningún Log DDL especifico Va Como primaria Exactamente Eso que nos dices Perdón Una disculpa Eso mismo que dices son como aplicaciones De los triggers Básicamente el trigger Como bien comentaron Es un desencadenador Que se puede ejecutar Cuando nosotros lo configuremos Ahorita vamos a ver el ejemplo Pero este desencadenador Se puede ejecutar en diferentes Escenarios Por ejemplo puedo crear un trigger Que cuando se cree Un registro Sobre una tabla En automáticamente dispare Eso es el concepto Dispare, es un disparador Se dispare una acción Y haga otra cosa Por ejemplo, yo puedo hacer Un insert sobre una tabla Configurarle un trigger De inserción Y puedo cachar ese registro Que se está insertando Y registrarlo en otra tabla De auditoría Que de hecho como para allá vamos Estos archivos de logs Oracle no tiene un mecanismo Como tal, lo podemos simular A través de un trigger Entonces eso es lo que ahorita Vamos a revisar en el ejemplo Como bien dijo Aaron Es una funcionalidad adicional Que le podemos meter Es un comando Un programa chiquito Que lo que va a hacer es desencadenarse Cuando ocurra alguna acción De inserción, actualización o consulta Sobre la base de datos O borrado sobre la base de datos Entonces sobre esas cuatro Cosas Vamos a poder desencadenar triggers Aquí nos dice Por ejemplo, crear un trigger Para capturar eventos DDL Y almacenarlos En una tabla personalizada Va, entonces Revisamos los logs Consultamos la tabla nada más Ese sería nuestro log Customizado, ¿no? O utilizamos las tablas que son de auditoría De Bauditrade Para revisar operaciones DDL Realizadas, entonces Aquí nos da un ejemplo Dice, supon que deseas auditar Todos los cambios de estructura En el esquema de Human Resources Podríamos crear un trigger Que registre estos eventos En una tabla de auditoría específica Y consultar esa tabla Podemos ver a manera de un historial Los cambios que se realizaron Va, entonces realmente Este ejercicio está muy bueno Para ejecutarlo Y yo creo que ya no nos va a dar tiempo En estos siete minutos Lo vamos a ver así nada más ahorita conceptual
on 2024-02-06
language: NN
WEBVTT и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и и
on 2024-02-06
language: ES
WEBVTT Creo que la habíamos llamado localhost. Yo lo único que hice ayer fue dar de alta las dos conexiones, la de SIS y la de HR. Entonces, por eso la renombré a HR. Entonces, si ustedes quieren renombrarlas, solamente le van a dar clic derecho ahí a donde se ve el cuadrito. Ah, si le dan doble clic primero, más bien, dándole doble clic, te va a preguntar, dame el password. Entonces, el password de nuestro usuario HR es 1, 2, 3, 4, 5, Me voy a esperar ahí, voy a monitorear a ver si alguien tuvo problemas en abrir el link para asistirlos. Ahí, por ejemplo, Orlando ya abrió. Ya lo abrió. Este león bien admin está haciendo el comando ahí en línea de comando. Yo también me acomodo más en línea de comando, pero, pero bueno, ahí para que usemos las herramientas de los sires. Se está aventando la de valiente este, este león. Luego vamos a ver quién más. Está Jesús, está Harold, que ahí van. Y está también Aaron, que creo que Aaron también está haciendo el medio de línea de, ah, está abriendo el link. Ok, va. Ahí Orlando ya incluso se metió al, a la, a la interfaz para ejecutar ahí comandos y demás. Entonces voy a esperar un ratito más para que todos tengamos ahí el ID, va. Si quieres Orlando, puedes ir cambiando la nombre de la conexión o si te acomodas, así está bien. Lo que yo digo es que ahí donde dice localhost le puedes dar clic derecho y creo que dice rename o algo así y ya le cambias el nombre. Yo porque di de alta la cuenta SIS no es obligatorio. Si ustedes quieren dar la de alta, pues adelante. Y si no, pues ya nada más se quedan con esa conexión. O sea, pero lo que voy a entender es que esa conexión en particular es la conexión con nuestro usuario HR directamente al esquema de la human resources. Entonces Aaron ya también pudo entrar y Farol también ya este. Ya entró. Entonces nada más esperamos a Jesús. Ahí básicamente es nada más ejecutar el último comando correcto. Ya también lo logró. Vamos a esperar. Lo está metiendo correcto y. Le da esperar. Vamos a ver si. Correcto. Ahí ya te abrió la la interfaz. Si me habló perdón. Es Aaron. Aaron este sí, sí, por de favor, nada más creamos la conexión local. Pues les decía que yo yo yo en particular di de alta también la SIS, pero está bien. O sea, la vive alta en el transcurso de ayer a hoy. Por eso es que ustedes no la tienen, este, pero si la quieren agregar también no hay no hay mayor tema. Este, pero con la local host así es suficiente más que local host. Lo que trato de decir es que se están conectando a la con la cuenta del usuario HR. Si tú, por ejemplo, miras ahí tus tablas, Aaron, vas a encontrar las tablas del esquema HR y la de empleados, la de toda, todo eso que viene ahí, no? De nuestro modelo. Ahí le podemos hacer queries, demás. Bien, pues perfecto. Creo que ya todos pudieron entrar ahí. No, no, creo que harón. Tienes problemas, Harón con. Con la conexión. A ver, vamos a intentar a ver, puedes volverle a decir ahí, díle OK. Es que ahí parece ser que como que no te deja por el log in. Vamos a darle OK. Dale otra vez conectar. Ajá es 1, 2, 3, 4, 5, 6. Ahí está. Vientos, vientos, vientos, Harón. Sal y vale, entonces ya ya estamos.
on 2024-02-06
language: ES
WEBVTT Entonces, antes de ejecutarlo, probablemente sea útil que podamos revisar que aquí en las tablas, si se fijan ustedes en sus tablas, no van a tener la tabla que se llama DDL y un bajo Audit, porque es una tabla que se va a crear apenas. Y también, por ejemplo,
on 2024-02-06
language: ES
WEBVTT los triggers se tendrían que ejecutar sobre cada operación en específico. Entonces, aquí ustedes haciéndose el labor de investigación, podrían preguntar ¿Qué tipo de trigger quieres que hagamos? ¿No? Pueden hacer un insert, un update, un delete. Karol, por ejemplo, tú podrías crear un disparador sobre la tabla de empleados, exactamente como lo dijiste, sobre la tabla de empleados para que cuando se haga un insert en esa tabla, hay que configurar ese disparador para que cuando se haga un insert sobre empleados, se registre el valor de ese insert en nuestra tabla de audit. O puedes crear otra tabla si quieres, puedes crear una tabla diferente de audit en donde puedas guardar la información, hacemos un nuevo editor en blanco para que pueda agregar mejor los comandos. Entonces, aquí le voy a dar donde dice, aquí, en worksheet, ahí está, ya está mi nueva sesión. Entonces, yo aquí le puedo dar pegar, sí, voy a darle un show user para ver qué uso yo, estoy según yo debe ser HR, ahí está, bueno, entonces, continuó bien, no, no pasó nada. Entonces, voy a crear una nueva tabla que probablemente nos va a ayudar que se llame ahora en vez de DDL, un DML. Ustedes lo pueden hacer en la misma, no había tema, pero ahorita como por ejemplo, que Harold mencionó de cómo podríamos diferenciarlo, se me hace buena idea añadir un nuevo campo, entonces, pues para eso vamos a agregar una nueva tabla. Entonces, aquí el ID va a seguir usando una secuencia, vamos a llamarle aquí en vez de DDL, pues un DML, el username, el DML type, sale el nombre de objeto, ahí también se lo podemos usar y vamos a crear una nueva columna que le vamos a llamar a esta, por ejemplo, values, o creo que values es una palabra reservada, mejor new values, no, por ejemplo, new values, así, para que no haya problema. Y aquí le vamos a poner, pues, por ejemplo, unos que les guste, esta sí va a tener un poquito más de info, unos 250, por cualquier cosa. Si están viendo mi pantalla, ¿verdad? Según yo sí. Ah, perfecto. Va, entonces, qué más dice aquí nuestro tutorial que ya hicimos, básicamente, ah, otra secuencia, vamos a crearla como para que no se, ah, disculpenme, gracias Leon por la aclaración, este, excelente, sí, bueno, aquí decía, ya creamos la, si me escucharon cuando creé esta tabla, creo que sí, ¿verdad? Ah, ah, perfecto, va, entonces, lo siguiente es crear otra secuencia, ocuparíamos otra como para que no se cruce con la secuencia del DDL y pues se crucen ahí los cambios, ¿no? Pero bueno, realmente ahí es como ustedes lo quieran manejar, si quieren hacer un tutorial, pero aquí le puedo poner algo más, que se llame insert, porque tenemos triggers, ya sean de inserción, de borrado y demás, ¿no? La condición, básicamente, aquí este era como el, lo que había que encontrar, que podemos hacerlo con un insert on, aquí ya va directamente no sobre la base de datos, sino más bien sobre la tabla en específico, en este caso, yo voy a crearnos sobre no sé por qué es esto, bueno, lo voy a poner así, ¿no? Como para saber qué es sobre mi tabla de empleados y finalmente me pide un values, ese values es lo que podemos ocupar mientras nos vayamos metiendo más como al mundo de los triggers, ellos tienen, bueno, sí, para manejar triggers, este, esta, como decirlo, esta instruccioncita, que básicamente esto lo que hace referencia es al nuevo registro que está llegando al valor del insert, por así decirlo, ¿sale? Yo con utilizar esto puedo acceder a lo que es mi tabla empleados, entonces yo con utilizar new es como decir el campo que venga new sobre la tabla de empleados y qué campos tiene mi tabla de empleados, acá los puedo revisar, por ejemplo, el empleado ID, yo puedo agregar, no sé, el empleado ID, en este caso, ¿no? Lo puedo cachar con escribir emplojion bajo ID, literal ese es el campo, es el campo que aparece en mi tabla, ¿no? Entonces esto básicamente sería el nuevo registro del empleado y el identificador, lo que se está insertando, ¿va? Yo aquí puedo utilizar el concatenado, así me salió, con ese doble pipe, este, ahora con concatena y para no insertar tanto ahorita nada más voy a, o sea, la idea sería que un buen log pudieras agregar todos los campos o pudieras decir algún texto tal vez, ¿no? No sé, algo, ahí lo que venga en la imaginación, pero con esto yo puedo acceder, por ejemplo, al, vamos a ponerle al email, por ejemplo, dando a entender que se está agregando el email o cualquier campo que a ti te interesa, ¿vale? Con esto debería de funcionar nuestro trigger, entonces vamos a hacerlo igual que en el otro paso a ver si aquí hay un deshacerse, a ver lo voy a dar aquí copiar, y lo voy a llevar acá, entonces si yo le pego, me voy a copiar este mismo valor, es que no sé por qué no me deja usar aquí adentro los comandos de cortar y todo eso, pero bueno, no importa, esta de aquí creo que el comentario es así, más bien sería un comentario de línea para, no es cierto, sí, sí, es este completo el comentario, a ver, ahí lo dejo así, lo agrego acá y aquí en el cuerpo más bien voy a utilizar el mismo de acá, ah mira, de hecho ahí sí quería que funcionara este, ok, voy a decirle que lo agregué ahorita nada más como para que funcione el disparador sobre ese DDL y los values pues este sí lo puedo volver a ocupar, sigo aceptando que por eso quería apurarlo para que, vamos dando el tiempo, a ver, ahorita ya vamos al pomodoro largo, aquí le doy pegar y también que me cache esto, entonces con esto aquí nada más podríamos ocupar la secuencia del DDL, que esa sí me sirve y aquí el owner, lo que decíamos, ese sí no va a poder funcionar, ahí tendríamos que poner el usuario y aquí muy en fijo podemos poner y pues literal estos dos valores, no los tenga que estar volviendo a escribir, hago un copiar y un pegar de esta información, y al hacer el pegado ahí está, bueno entonces voy a quitar, voy a comentar, bueno no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no fíjate que creo que tenemos un insert por acá para no estar buscando ahí comandos control f insert mira justamente vamos a buscar este ah mira y es justo sobre empleados entonces para que no nos tardemos simplemente me lo traigo y acá lo voy a pegar a ver si no y aquí este le voy a poner un id no sé diferente no el 207 o incluso lo puedo quitar y la secuencia creo que tiene asociada a una secuencia no me acuerdo si no la tiene puedo ocupar esto que cree no ahí es sabores voy a poner el 207 todo tal cual si yo lo ejecuto ahí me va voy a limpiar aquí esto y si yo lo ejecuto esto va debería funcionar a ver nos dice que es la el unique constraint por el insert en donde en donde es donde está fallando hice audit y un constreo violado ok probablemente es por la tabla digo por este por este insert vamos a ver si agregamos un este a ver un 9 9 9 tal vez aquí lo que puedo hacer es volver a borrar esto de l estoy ocupando a bueno creo que más bien es no si si está bien a ver lo voy a ejecutar bueno a ver si no voy a voy a para nuestro ince que básicamente es hacer esto punto next value sino nos equivocamos con eso aquí le damos un insert si ok algo está fallando pero me parece que es más bien del lado del trigger vamos a ver qué dice insertas en la tabla de l audit ok no es en la tabla de l audit es en la tabla de ml audit qué pasó que como yo lo estoy insertando en la tabla del de la tabla anterior vaya en el insert del dml está agarrando el sequence que ya existía y por eso nos está mandando un duplicado exactamente entonces era más bien crearlo en mi tabla de acá sale y en los new values tienes toda la razón aquí vamos a agregar un valor cualquiera no voy a ponerle new value porque si me lo va a pedir así y aquí le voy a poner un simple no entonces aquí es el dml audit nada más déjenme revisar que todo esté correcto de del date ok entonces vamos a checarlo create o replace ahí debería de volver a ejecutar el trigger ahí está de deletite en donde está marcando ese deletite user ok parece que también tienes un error acá en el object name es un insert ahora vamos a ver si entonces con el deletite anterior que no creo que lo pero a ver lo voy a agregar el sistema el id el sistema en la fecha el nombre el tipo a ver voy a crear voy a utilizar este la verdad no creo que lo jale pero a ver lo voy a intentar en vez de user no es cierto sabes que es por esto más bien ya me di cuenta es el campo sino porque esto es el user más bien era el campo lo que estaba mal el nombre a ver entonces si lo ejecutamos debería de crear el trigger nuevamente a la fecha no es ddl es dml date y debería de ver otro creo que ya es todo vuelvo a limpiar y lo ejecuto acá creamos la función se creó el trigger y si yo hago el insert aquí ya no debería de mandar error si yo lo ejecuto jala la fila y ahora sí yo podría hacer un select sobre la tabla sobre esta sobre esta la de dml que bueno básicamente es copiarnos el comando que ya tenemos acá para no estar creando tantos de hecho lo puedo ejecutar desde aquí mismo nada más le cambio aquí el dml y debería de haber un registro déjamelo ejecuto y con dml hacer el insert obviamente el new values es el que decíamos que pero que es lo que estamos viendo aquí que lo que está cachando es nuestro disparador va y ese disparador funciona sobre esta tabla de empleados entonces qué es lo que hace que cuando registra o escucha que hay un este una inserción sobre esta tabla el este trigger se dispara y ejecuta esta información va entonces este así como hay triggers de inserción podríamos haber usado un selección y aquí aquí podríamos en vez de hacer un este bueno es que aquí adentro puedes hacer lo que quieras no no porque hagas un delete tengas que hacer aquí un delete no o sea si haces un delete aquí aquí lo que puedes hacer es hacer un insert igual sobre la tabla de auditoría del borrado eso es como que lo que estaría haciendo y eso es lo que estamos viendo acá no básicamente el no sé si hasta ahí tengan alguna pregunta yo ahorita en el pomodoro de los 15 minutos voy a ver qué onda con cómo podemos sacar este valio sale y que el registro quede todavía más este pues más completo pero de ahí en fuera no sé si haya alguna duda de cómo funciona el disparador sobre la tabla de más bien sobre la acción del insert a perfecto en específico muy correcto exactamente sale un dml y un ddl si lo puedes hacer a nivel este global correcto sale no a ti ya tienen bien entonces entonces son 12 y 5 les late que a las 12 y 20 nos volvamos a conectar y continuamos y entonces va entonces con conmigo y nos vemos adelante jaron dime adelante y no no no no el ddl va a manipular ddl son acrónicos de data definition perdóname dml ya me confundí ddl es lenguaje de definición de datos no data definition language entonces los comandos de definición son todos los que tienen con la definición de los datos de la tabla con esto con la estructura de los objetos así así lo podremos hacer va y el manipulado ese sí es el que te ayuda a hacer inserciones borrados selects ese es el dml el manipulation language exactamente exactamente por eso es que cuando probamos nuestro primer trigger lo hacemos con un segundo comando alter cuando yo haga un alter un create table de hecho tú puedes hacer aquí varios ejemplos puedes hacer un alter o crear otra tabla o un alter sobre otra tabla que no sea empleados y crear una nueva columna etcétera etcétera y va a reaccionar el trigger el disparador si tú hicieras un insert en una tabla esperando que registre algo aquí eso no va a pasar porque este no actúa sobre insert actúa sobre los definiciones para hacer uno de insert por ejemplo está este trigger que hicimos acá que de hecho es lo que dijo ahorita leo no los ddl se ocupan a nivel global aquí sí lo puedes ocupar esto si te fijas actúa sobre la base de datos sobre los objetos cualquier objeto este otro no este otro actúa en específico le tienes que decir a qué tabla es en específico va perfecto bien entonces no gracias a ti bueno bueno listo ahí ya me escuchan verdad todo bien sale entonces voy a compartir pantalla para que podamos continuar sale ahí ya se ve no sí bien entonces para hacer la modificación al ya ven que hicimos el trigger de insert y nos estaba dando un problema por por esto no básicamente es porque no me no me di cuenta estos identificadores cuando estamos haciendo como se llama un trigger del tipo inserción borrado y demás esto de aquí afecta o es una forma de acceder a la fila a la fila en específico que va a que va a insertándose lo hace fila por fila entonces para que yo pudiera manipular eso por campo tenía que haber agregado una instrucción antes que es esta el for each row este esta instrucción lo que hace es que en cada fila va a procesar la información de esta forma sale entonces no es más que agregarle esto en este caso yo voy a ir cerrando estas pestañas para que veamos cómo con esto yo ejecuto nuevamente el trigger si te fijan ya estoy ocupando bien la tabla de ml que es la que ocupe para este es su id el todo lo que le definimos aquí no la fecha de ml este etcétera etcétera no el tipo y el valor de new values sale ya lo puedo acceder a través de esta instrucción entonces el id yo les digo que quiero que el nombre de bueno el registro y aquí me di cuenta que el hr el esquema le metió un constrain al correo electrónico que quiere decir que no puedo poner uno repetido entonces cada vez que yo hago un insert aquí ahorita en mi ejemplo entonces este si yo lo guardo en un insert la fila se inserta las secuencias este se agregan si y cuando yo hago el asterisco from de la tabla me voy a dar cuenta que ya va guardando los registros ya accede en la tabla new values a el valor que agregamos acá que fue el identificador que es el que va agregando un espacio y el email no o sea yo aquí puedo poner cualquier texto realmente pero estoy a que sea estoy ilustrando que estoy accediendo al campo empleado y al campo y me puedo puedo aquí agregar cualquier campo que esté dentro de la tabla de empleados va cualquier campo que esté sobre esta tabla yo puedo acceder a ellos a través de acá y con esto yo estaría haciendo el registro de auditoría de la tabla de empleados el de delete funciona muy similar nada más que aquí es delete y en vez aquí de usar los new son los old los campo old entonces este esos registros quieren decir lo que borré el viejo registro por así decirlo lo va a guardar no este también es como útil de conocer ahí está y aquí claro claro que sí voy a si voy a voy a copiar el trigger bueno de hecho todo el que se puede ver aquí en la parte de la tabla de empleados que está en el centro de la tabla de empleados y ahí está el registro de los nuevos empleados que están en el centro de la tabla de empleados y ahí está el registro de los nuevos empleados que están en el centro de la tabla de empleados y ahí está el registro de los nuevos empleados que están en el centro de la tabla de empleados y ahí está el registro de los nuevos empleados que le voy a poner aquí duplicar y le voy a poner es que realmente este ejercicio se me ocurre ahorita como para que podíamos complementar la práctica no es bastante uso usado el tema de los trios por eso no no estaba aquí definido vamos a ponerle algo así como ejercicio de trigger para insert sobre empleado formato no esto todo esto es en a ya ya ya sé qué pasó mejor primero copiar el código para que editar pegar sin formato y pues básicamente son los queries que se tienen que ir ejecutando voy a quitarlo este formato creo que entonces mejor con esta parte lo que si quieren ustedes van este probando y si tienen alguna duda lo vamos a ver y esto de acá también que afecta este ya entonces este lo voy a separar en dos creamos la tabla de auditoría y luego le voy a decir aplicar y pegamos lo que falta aquí le vamos a poner un eje un texto más que diga probando el y ya está ahí también en la presentación ya actualice este lo que viene a ser el ejemplo para que lo puedan también tener ahí en la la posteridad y nada más entramos ya está si ustedes actualizan la presentación también ya este tienen el el trigger va voy a revisar no sé si alguien tenga algún comentario o duda o requieran este apoyo para que les ayude con el trigger ahora vamos a empezar con jarro a no es cierto orlando lo tengo a la mano bueno ahí creo que no está copiando se trata de algo me avisa va orlando sin tema luego perfecto luego paso con harold este ah pues ya lo agregaste no vamos a ver a sus está copiando y vamos viendo ok ahí está y creó el play street y está está guardando los registros no te guardo el id te guardo el y creo que es que es como creo que también no tuviste bronca verdad este Jesús a ver perfecto a viento así ya vi que hiciste el que hice todo es cierto ándale ok exacto perfecto vientos sale a ver ahí cómo fue déjame lechón ojo no dice before insert o rotate sobre aja cualquiera de las dos actividades sobre inserción actualización for each row haces el declare begin ahí está el case con respecto al transaction muy bien a ver nada más déjame ver que onda que es perfecto ahí está entonces está está muy bueno exactamente quieres ahí lo puedes compartir la presentación es justo para eso no está les di el acceso a a no es cierto que lo tienen como lectores si quieres lo puedes compartir en el coche y a los demás lo podemos agarrar y yo después al final ya del día les puedo dar el acceso de este administrador para que puedan complementar ahí ustedes la la presentación y pues agreguen más este más ejemplos va bien y luego vamos con la más falta león vamos a ver como está en la orilla no me deja agarrar esta cosa a ver este ya la agregaste ya la creaste haces haciendo los cambios ok ya vas a agregar el trigger ahí está y bueno estás haciendo los ejercicios no paso paso ok creo que no no tuviste bronca de algo me avisa perfecto perfecto bien todos sale pues bueno vamos a con eso estaríamos cerrando prácticamente el tema este de los logs y bueno aquí nada más vamos a ir haciendo como una pequeña remembranza voy a continuar con de ahí me voy a pasar hasta el tema 6 que va a ser tema así ya en la presentación y bueno aquí básicamente nada más este vamos a hablar de un archivo este digo si ya no hay dudas ni demás con el tema de los de los logs y demás diferentes estrategias que ahora con nos permite usar para hacer auditorías y demás y sobre todo también este registro de ahí de trazabilidad y algún problema no sé que podamos este encontrar ahí vimos tres formas de hacer este logs no la verdad es que me detuve un poco más en esta parte porque creo que es de las cosas que más este vamos a estar ocupando al menos creo que la mayoría de la audiencia lo que entendí o escuché bueno aquí abre pauta a un poco también el diálogo por si ustedes me me dicen que se invirtió mucho tiempo en una práctica como así lo considero para las siguientes actividades porque porque este curso si se fijan es muy de administración no entonces yo veo que la audiencia y más como desarrollo no entonces creo que a lo mejor un tema como de triggers demás entonces tal vez más más como decirlo más útil pero a lo mejor aquí abro el diálogo si ustedes me dicen no sabes que la neta se invirtió mucho tiempo a la próxima preparo a lo mejor ajusto mejor dicho los ejercicios para que sean más este centrados en el tema de administración ahorita está más balanceado pero te digo yo como vi que si es más de desarrollo pues le metí incluso el último ejercicio no no sé ustedes qué opinan quieren que sigamos viendo los inclinamos poquito más como al tema de desarrollo o sea no me voy a salir del temario y temario es lo que es pero los ejemplos que vayan más orientados como a desarrollo o más como administración ustedes ustedes digan quién quiere este participar desarrollo a ver este león tu tu comentó opinión creo que tú eras el administrador de de aquí no del equipo a ya ves león ajá cómo ves que qué qué hacemos para inclinarnos en los ejemplos está bien así este o nos vemos más como en gestión en la administración si o sea de hecho está equilibrado pero o sea te digo ahorita yo invertí un ejemplo más en el trigger por ejemplo que es más como de desarrollo este pues lo que escuché ahora que la audiencia es más como de vez pero no hay tema y un 50 50 entonces ya cambió ya cambió de rol este harón va a ser el muy bien sale y si no es indiscreción león tu perdón a mi quien quien va a hablar es un sale ok perfecto de hacer respaldos y demás creo que genera si si yo creo que sí si aja si también claro si si ok quieres quieres que veamos como nos enfocamos también en en usuarios no como dar permisos y ok ok si digamos que si tú a un usuario o sea te entendi tienes dos tablas en dos perdón dos bases de datos diferentes y quieres gestionar los roles digamos un usuario le das el rol para que ocupe la tabla 1 y 2 y los pueda hacer yo no las pueda cruzar ok va si ok entonces también nos enfocamos en esa parte a mí me sirve mucho hacer esto pues más que nada porque lo que yo quiero es que el curso quede pues muy a la medida de ustedes como les comentaba a mí me dicen quiénes al final o sea de hecho cuando me conecte el lunes no digo ayer martes no cierto ayer no fue martes el martes vaya yo me enteré de quiénes son demás y pues la verdad es que yo creo que eso está medio bueno podemos podemos mejorarlo no entonces este pues sí es más como una retro como para en que quieren que me enfoque un poquito más no y le balanceamos ejercicios como nos dijo león y jarol son 50 y 50 administración y desarrollo no y te decía león entonces tú te vas tú vas a hacer que ahora ya no va a ser de verdad que ahora eres de box o que perfecto bien entonces va con hacer ahí como brevaje cultura ok bien entonces continuamos yo me llevo esta notita va para en base a eso ir preparando más como ajustando mejor dicho los ejercicios bien entonces entonces el tema que sigue es el es la parte de los net services sale esto vamos a leer un poquito de teoría y a ver quién falta creo que por ejemplo a ver qué les parece si jesús nos ayuda a si es verdad ahí está perdona estamos pero creo que por acá acá perfecto muchas gracias jesús luego dice configurando y administrando un oracol net services configurar y administrar oracol net services en ubuntu implica establecer conexiones de red seguras y eficientes va se realiza mediante se realiza principalmente mediante la edición de archivos de confin de configuración como el list tener punto hora para el oracol el para ahora con el list tener y el tns names para la configuración del cliente entonces aquí aparece este dos conceptos bastante también importantes y sobre todo digamos muy necesarios de identificar dos dos este archivos que son el list tener punto ahora y el tns names básicamente eso que es lo que nos permite como lo estaba comentando aquí jesús de la diapositiva oracol provee un servicio que se llama net services que básicamente lo que hace es que nos permite tener una base de datos por así decirlo compartida en la red qué quiere decir esto que es como si nosotros vamos a hacer una analogía pusiéramos una aplicación si en un servidor y este es accedido a través de puertos y protocolos en este caso htp y lo pueden consultar varios clientes no entonces en una arquitectura cliente servidor en donde muchos clientes se conectan a una instancia de un server y obtienen o interactúan mejor dicho con un aplicativo eso es básicamente lo que la analogía más más este cercana lo que sí en este caso oracol va a por medio de un archivo lissender punto hora exponer sí vamos a decirlo así exponer para que los tns names que digamos un cliente se pueda conectar a esa base de datos desde la infraestructura del de los protocolos de intercambio de información como por ejemplo tsp nosotros con ese archivo de conexión nos podemos conectar directamente a esa base de datos que se encuentra en el cerebro va entonces es muy importante tener noción de que existen estos archivos y para que se ocupan va nuevamente para para hacer ya para cerrar esta parte el lissender punto ahora configura lo que vendría a ser la bueno más bien define lo que vendría a ser la configuración de oracol base de datos como un server y el tns names se configuraría en cada máquina cliente que quisiera conectarse a esa instancia de configuración a esa configuración va es básicamente eso en donde se encuentra cada uno bueno en este caso este list tener ahorita lo vamos a acceder nosotros a lo que tenemos en nuestra instancia y básicamente es esto dice que el archivo list tener hora define parámetros perdón para ese ahora con el list tener sale incluyendo el nombre del list tener el protocolo y la dirección ip y el puerto se va a encontrar en esta ruta ahora coljón network admi incluso creo que así literal si yo la copio como bueno me voy a cambiar a la parte que tengo si yo copio este comando y lo pego acá en mi instancia de lo se llama de docker de mi contenedor de oracol si se fijan yo de fíjole dije llévame a esta ruta no ahora con home network admin aquí yo puedo ver entonces cuánto vale ahora coljón no porque porque lo que está en network admin está acá entonces todo lo que está del lado izquierdo vendría a ser mi variable ahora coljón esto es ahora coljón esto ahora con form quiere decir el directorio donde está instalado pues literal la base de datos ahora con de hecho si te fijas dice ahora con el producto la versión 19 y listo sale entonces yo aquí adentro vamos a ver qué hace qué pasa si le doy una ls la si tú te fijas aquí tengo dos archivos bueno tengo varios pero dos importantes son él list tener va y mi tenes en ex si estos archivos también nosotros los tenemos en nuestra chuleta hemos estado trabajando sale y déjame buscar la chuleta hasta la puse casi está abajo van a encontrar ahí los archivos tenés en ex y ahora va que de hecho agregué otro más otra lo vamos a ver son tres no es que y básicamente es esto como entramos como lo decía aquí nuestra presentación me conecto en la instancia de oracol le digo que me y ahí adentro le doy un ls la y me lista estos estos archivos no te fijas estoy aquí y cómo puedo ver el contenido en este caso voy a voy a repasar el primer el list si yo me fijo yo le puedo dar un cat comando cat porque estoy limitado no no he instalado el sudo el nano ni siquiera el bien no entonces con el puro cat yo puedo usar esto ocupo y te fijas aquí adentro está una configuración ahorita vamos a ver más adelante bueno yo creo que no soy más el mañana pero más adelante la diapositiva nos dice que hay un servicio de configuración en automático que cuando yo creo una base de datos por algunos de los comandos que hemos usado como debe ser como ahora perdón como el docker con pose como algún comando que ocupe que sean como del tipo asistente de hecho si ustedes se fijan estos estos este estas configuraciones nosotros no las hemos movido no no se no sé no se alteran vaya no no no las damos de alta manualmente vamos a ver en la presentación que existen dos formas una estática y una dinámica la dinámica es la que viene por default y cuando yo cree una base de datos y demás en automático me va a dar ahora col todo lo necesario para para acceder al list y también al tns en el que los van agregando en un caso de que algo fallara no se agregara o simplemente yo siendo más experto le puedo modificar que también también es válido no eso es a lo que se refiere al método estático para poder acceder a la a estos a estos archivos modificarlos por otro lado yo voy a hacer también voy a ver qué hay en el tns names acordémonos el listener es el que configura a la base de datos para que otros clientes nos puedan pueden acceder en este caso no vamos a llegar a un ejemplo en donde se accede a si te acuerdas creamos una base de datos debe que se llama new world clcdb no con nuestro comando ahí el cdbc que está en la presentación no se creó y también si te fijas es un cdb también nosotros agregamos un este otra base de datos que es la que hemos utilizado y ésta si se acuerdan se generó con el archivo docker con post y ya lo hemos repasado varias veces va si te fijas entonces aquí me doy que te oye entender que ya sea con cualquiera de los dos formas que hicimos se nos creó el archivo en forma en automático y aquí abajo que más hay además de que agregarnos eso pues nos queda un list tener para cada una de los cdb no que en este caso está haciendo más ahí al pare a lo mejor a ustedes sus list tener sus tenes en names son diferentes no pero bueno la idea de eso es que podamos saber cómo acceder a estos archivos en qué ruta están ahí dejamos la chuleta de que los comandos y que lo puedan ver que tiene entonces este no tienen por qué ser iguales sus cdb es diferente no con un name diferente y pues bueno eso es lo que contiene los archivos ahorita vamos a ya ya de hecho ya terminamos el día de hoy sale y este pues bueno aquí nada más te va diciendo de lo que es el list tener lo que es el cliente cómo lo puedes acceder a través de un tenes en que se conecte a este list tener que no es más que realmente lo que hemos estado nosotros revisando en este caso aquí sí en un ejemplo teórico te ponen un list tener en donde tú habilitas lo que te decía ya nos es un ejemplo levantamos un server lo ponemos ahí y un cliente configuramos que ese cliente ese servidor tenga el acceso de cliente y lo podemos mapear en este caso como todo es local pues va a funcionar sin mayor problema va entonces este básicamente es el repaso y demás hemos ocupado estos creo que estos no mañana los vamos a revisar estos dos comandos pero básicamente esto nos ayuda a gestionar ya no no son los comandos del shutdown y media que configuran la instancia de la base de datos que podíamos reiniciar la instancia aquí suena bueno aquí ya podemos diferenciar estos dos conceptos uno es la administración de la instancia otro es la administración del por eso que lo llaman la gestión del list si son comandos diferentes para la base de datos son el shutdown el media el normal blablabla no y el startup para reiniciar iniciar bueno volverlo a encender y con como se puede configurar este básicamente nada más es cambiar una línea si se fijan aquí los servidores son dedicados vamos a hacer un cambio para que sea un share y a share me refiero a esto ya con eso estaríamos creando una arquitectura compartida si que básicamente va a poder este hacer que otros este otras a otras este clientes se puedan conectar a la aplicativo aquí no es más que estábamos viendo que contiene cada archivo que es lo que estuvimos revisando tema de la arquitectura dedicada un ejemplito de bueno la el comando de más bien la descripción de lo que hace cada uno sí y bueno entramos con el ese cualidad ahora lo vamos a dejar aquí este y mañana pues ya entramos otra vez en la atención y la participación león levantó la mano del anda entonces nos vemos mañana y muchas gracias a ustedes que tengan buen día
on 2024-02-06
language: ES
WEBVTT que no tiene interfaz por la línea de comando. En esta madre te venían ahí unos requerimientos que básicamente era crear este redirección de puertos y la creación de un proxy para la parte del backend. Sí, y la parte del frontend ahí no te pedían nada realmente respecto a puertos y proxys, nada. Entonces, eso de lo del proxy inverso, creo que venía así, un proxy inverso y ya, y restricción de puertos. Entonces, dentro de Ubuntu Server para hacer eso del proxy inverso, de hecho no es cierto. Bueno, a ver, antes de decir qué hizo cada cosa, ahorita nada más voy a instalar lo que se ocupó. Entonces, las máquinas Ubuntu Server, el estado operativo, se instaló Nginx. Nginx se instala en cada uno de las dos máquinas, tanto en Ubuntu, tanto en Livefront como en la del BAC. Nginx. NPM, que es un gestor de Node. Entonces, en esta aplicación, ellos te pedían dos máquinas virtuales porque el objetivo era crear un API, un API y un frontend que se pudiera comer ese API, ¿no? De una tabla de usuarios. Es lo que pedían, un formulario de login y un registro, ¿va? Entonces, era un CRUD, un formulario de login, un registro, y listo. Entonces, en la aplicación tenía que tener tokens, tokens de seguridad para proteger el API respecto al tema de la seguridad. Entonces, todo eso es lo que te estaban pidiendo y, pues, bueno, ahí se va viendo qué ocupas en cada una, ¿no? El backend, entonces tienes el Node Package Manager. Es una aplicación full stack porque se ocupa un frontend y un backend. Entonces, ya por eso te digo, tú decidiste desarrollarlo con el frontend de JavaScript. Entonces, todo esto, tanto el frontend como el backend, es una aplicación, bueno, no es Mongo, aquí más bien es este, creo que es MySQL lo que nos pedía de instalar. MySQL nos pidió instalar este, ah, pues es MySQL, nos pidió instalar Node o Nexpress para crear el backend, y, pues, ya, obviamente, pues, TypeScript y Beautify. Ajá, entonces, este, pues, de aquí ya nada más vas viendo cuáles son las tecnologías del front y cuáles son del back, ¿no? En este caso, pues, esto es del back, es la base de datos, esto es del backend, y todo lo demás es frontend, ¿no? Todo esto de acá es el frontend. Beautify, nada más la remembranza es este, el framework de Vue para crear interfaces web, es como Angular material, y este sería Angular, ¿no? El equivalente Angular y este sería el Angular material. Listo. Entonces, ya con eso tienes las dos máquinas, la uno y la dos, frontend, digo front y back. Y si te fijas, pues, aquí está, ¿no? Esto es MySQL, es ORM del lado del front, es NPM, ambos tienen NPM, distintos paquetes, cada uno va a tener. Vue y Beautify. ¿Qué paquetes tienes del front? Pues, Vue, Beautify, ¿no? ¿Qué paquetes tienes del back? Pues, NodeXpress, el ORM de MySQL, etcétera, etcétera. Entonces, ya, aquí está lo que hace cada cosa. En este sentido, la máquina va a exponer un API sobre el modelo que te dan ahí, que es una tabla de usuarios, ¿no? Ese user lo vamos a mapear con ese ORM. Y esta API es la que te digo que te dicen que tiene que tener una autenticación. En este caso, nosotros elegimos darle la autenticación por BureauToken o una autenticación básica por token, así se llama, ¿no? Una autenticación por básica de token o también se conoce como BureauToken. Es esto lo que tú vas a crear, ¿sí? Y pues ya, esto también lo maneja un paquete. Ahí en la documentación ahorita, bien, ahorita vemos en la hoja de la chuleta que otros paquetes vienen aquí en la parte del paquete. Por ejemplo, el tema de seguridad, la base de datos está encriptada en las contraseñas de las encriptas de paquete, ¿no? Y en el back end, nosotros vamos a ver cómo te genera tokens y pues, bueno, esa parte. Por ejemplo, eso lo puedes poner como un plus, ¿no? Tus contraseñas no te las pedían y las encriptamos. Nosotros las estamos encriptando. Y, bueno, el API se basa en un CRUD. Tienes el create, el read. El read tiene paginado. Pero acuérdate, en el back end nosotros no lo paginamos, porque es un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que tiene un crudo que sí sí es cierto que ya es mira bueno es que no podemos decir que ya va le gane a no en robustes porque la verdad es que también no lo es también no es muy robusto no es más joven que ya va sí pero esta madre y javascript es un es un lenguaje que lleva años en la industria no al igual yo creo que de edad se la lleva con ya no sé quién sea más viejo de los dos sí pero ambos tienen eso pros y contras este realmente hablar de eso yo creo que es algo más este fuera de del foco de aquí lo que sí te puedo decir nada más digamos que tú puedes presentarte y decirles la idea de yo ocupe javascript o no porque se conecta bastante bien con el tema de engine x si en genesis un server que lo puedes configurar con tres patadas en javascript es que miraba va mucho de estilos porque sí es cierto también lo puedes configurar con java este es independiente y sí también es bien rápido y bien fácil lo que tú quieras tiene tiene que ver más como un estilo de desarrollo no si se ocupara por ejemplo spring framework toda esta aplicación depende de qué tanta experiencia tú tengas con el framework lo puedes configurar más o menos rápido si ocupas por otro lado spring boot ese sí también sale en putiza y bien fácil estas configuraciones pero bueno yo en mi caso me fui por javascript porque digamos que es un ambiente que se lleva muy bien de la mano con view es un framework de front end no es que sea la la única el único motivo vaya que hay como view es javascript no sino como porque esto fue un ejercicio meramente digamos como decirlo controlado para hacerlo en una entrevista de trabajo pues se ocupó así algo rápido es que son todos esos son tecnologías javascript recuerda recuerda aquí en esta parte de el tema de los stacks no está mongo express angular y no es el primero que salió min no este fue como el boom después de mil empezó mer y luego fue el meban y luego ya le meten tanta mamada que no sé qué no pero al final son mongo express y no ya que te suena todo esto o sea ya no ya piensas hablar de a este pues muy muy probablemente voy a usar el está aquí qué pasa que no ocupamos mongo no ocupamos una base de datos basada en ese cual es server perdón basada en un modelo relacional en este caso pues fue maize ql entonces aquí creo que si hay un está que se llama así algo así algo así digo que así las combinan así mamada o maíz si algo así les empiezan a nombrar pero bueno es eso a lo que se refiere yo yo nada más lo mencionas así o sea fue puro soy bastante agil con con no con java con cualquiera de los dos pero pues bueno ahora sí que lo quise hacer con esto por por la simplicidad la rapidez que todo lo lo quise manejar en un solo lenguaje de programación que en este caso es javascript script entonces este para llevar una sintaxis digamos de de código nada más ajá exactamente sí sí sí sí sí exactamente si tú te ibas por un frengle basado en apache pues ya lo ocupas con este con tecnología de java no lo lo ocupas con algún este algún ya te exportes con la aplicación de java y todo este apache también está ahí el voz wild fly hay un chingo de servers que manejan este ya o sea es que te digo son sabores nada más hay muchas herramientas si es cierto o sea están muy dedicadas las herramientas a ciertas características demás pero generalmente tiene que ver con con lo que ocupe es con cuántos recursos tengas etcétera etcétera etcétera con qué tanto puedes delegar o estás dispuesto a delegar por ejemplo esta arquitectura y creo que va de la mano con la otra este lo pudimos haber hecho en la nube imagínate un escenario real lo haces en la nube no conservadores este dedicados de paga y demás hay gente que dice yo no tengo pedo por la lánagra yo lo voy a hacer no voy me aviento a pinche amazon cuentas de google lo que tú quieras ya revisé los planes ala neta si me queda y me migro al cloud computing no todo más rápido todo en corto entre comillas y muy entre comillas 24 7 porque luego también se caen esos weyes también se caen y ya chigaste tu madre o sea hay muchas pros y contras no pero por ejemplo ventajas que te trae la nube es que todos los pichas servidores ya no los administras tú por eso estás pagándole a otra persona cabrones ustedes me administran el cloud computing y demás bueno es que el cloud computing se ha hecho en categorías o sea tú puedes tú puedes decidir hasta qué capa de infraestructura trabajar puedes trabajar en una capa 100% serverless que quiere decir que ya no ocupas tú ni madres de infraestructura no tú ya nada más te puedes conectar a un producto de amazon por ejemplo amazon ya tiene todo armado por así decirlo ya dice aquí yo tengo gateways yo tengo servers yo tengo para integración continua de github yo tengo funciones lambda yo tengo funciones para almacenamiento base de datos todo eso tú nada más consumelas no entonces ellos te arman su propia arquitectura esto que tú armaste aquí ellos ya está ya está armado nada más para conectarte conectate a una base de datos conectate a un s3 conectate a un despliegue este hasta los ides se los renta bueno docker es otra cosa docker es por ejemplo docker lo que te permite hacer es empaquetar o contener contenedores precisamente sí bueno cuando hablás de docker casi casi vas a hablar de docker compose también son dos tecnologías entonces docker lo que el concepto de docker es la contenerización de aplicaciones para su mejor gestión su mejor distribución en red a qué me refiero vamos a suponer docker es una cajita es como si tuvieras aquí una cajita que se llame aplicación 1 sí y vas a puedes tener otra cajita bueno la vamos a poner acá abajo imagínalo con un modelo de cajas no aquí tienes otra aplicación 2 entonces dentro de esta aplicación 1 tú vas a poder definir servicios dentro de cada service vamos a suponer que le llamas el un nombre no le puedes decir que vamos a poner mails que huele le vas a llamar a este a este a este service le vas a llamar este no sé front en en este caso no entonces vas a instalarle bio vas a instalarle que más en el PM le vas a instalar pues no sé si se instale beatify por acá no creo más bien se instala dentro de esto vas a instalarle un server este dentro de un server puertos proxies este la chingada y media no esto y en el otro service vas a ir vas a crear por ejemplo este puedes hacer varios servicios en una sola aplicación aquí puedes hacer por ejemplo la del baquén sí aquí puedes instalar no express por ejemplo y lo mismo entonces puedes tenerlo así en una sola aplicación en un solo contenedor este es el contenedor puedes tener varios servicios en este caso el del front en el back sí y cada uno tiene un ambientado ese ambientado es pues todo esto que tú estás instalando acá sí todo esto toque lo compó lo compó lo lo arma a través de o es posible hacerlo porque se conecta a esta madre docker se conecta a una algo así como un aún aún este aún github un repositorio central de este de imágenes es como si habláramos de maven por ejemplo no se escucha de maven de nougat en en este en punto net cómo se llama el gestor de paquetes de p h p este no me acuerdo se me fue su pinche el nombre del herramienta está de comandos bueno el gestor de paquetes e en el p m o en el d m un chingo de estos no bueno esto básicamente es eso docker tiene un repositorio central de imágenes imágenes que son públicas sí entonces qué quiere decir eso que hay empresas sobre todo las que son de software libre o frameworks tipo tipo en g next no aquí también podrás tener en g next todo esto y lo vas a poder este contener por así decirlo en en contenedores esto es docker entonces docker qué hace docker te permite hacer un concepto a lo que te lo explico así rápido como si fuera una máquina virtual todo esto va a correr gracias a que tú tienes instalado ahorita está la podemos quitar a que a que tú tienes instalado tu ambiente de docker no entonces mientras tú tengas docker instalado esta madre tú la vas a poder ejecutar porque porque docker también te provee de un celí no una línea de comandos entonces tú con eso vas a poder acceder y ver cómo está tu pinche contenedor sí vas a poder hacer comandos como a ver dígale también todas las dime las imágenes que tengo dime su status no reiniciar en la imagen que se llame front reiniciar la exilio va a que docker lo que hace es eso entonces esto esto es una cajita es esto es una cajita cada service esto es otra cajita a qué me refiero con cajitas bueno docker internamente lo que hace es esto se lo lleva y te crea vamos a decirlo algo así como bueno no es como un sí es un sistema operativo chiquito por así decirlo lo empaquetan en un en un sistema operativo generalmente basado en unix no por ejemplo te puede generar un fedora creo que eso también se puede configurar pero por deform creo que te lo mete en un fedora entonces esos contenedores a eso me refiero todo esto te lo instala en un fedora y al final a ti te da una línea de comando entonces tú vas a poder hacer algo como para no me acuerdo cuál es el comando pero el chiste es que le pones el nombre de tu imagen diagonal o petea diagonal algo y ya con esto tú ya te conectas desde tu línea de comando al a lo que tienes aquí adentro a este servicio a este contenedor y es como si tuvieras tu máquina virtual ya en este punto tú ya puedes interactuar con los comandos que tienes aquí en el front ya puedes empaquetar la la la aplicación jugar con view como si tuvieras acceso a la máquina que hoy te hicimos a la virtual por ssh ya te conectaste a a este instancia de front end y esto la verdad es que lo contiene y lo hace en minutos o sea yo le doy no me acuerdo cuál si ya me acuerdo de docker con post op no con post op y ya con eso esto de aquí que yo te estoy explicando es un archivo en un formato llame entonces se llama docker con post punto llame va entonces tú cuando tengas este archivo te metes a la ruta vamos a suponer que lo guardaste en descargas diagonal y ahí pones tu con post te metes desde tu línea de comandos ejecutas este piche comandito de acá ahí este piche comando de acá lo metes aquí adentro y solo esta madre empieza a leer todo este llame y empieza a decir ok este we quieren paquetar dos servicios en el primero me estás pidiendo que te instale todo esto va en el segundo todo esto ya la terminal te va diciendo estoy instalando esto esto esto esto pum pum pum la la la listo ya acabé ya cuando haya acabado ya tú ya puedes monitorear las instancias o sea ya te lo trepó como si fueran servidores y ya ese es el concepto de docker qué significa que entras en el concepto también de la portabilidad no tú vete esto lo instalé en una mac pero vete a windows tú quieres correr la misma aplicación no sí a qué haces vete a windows y instálate docker sí ahí tienes una interfaz gráfica que se llama docker desktop no ya con eso en que paso mi llame mi compós aquí está lo pongo igual mismo comando y ya quedó ya tengo la aplicación con en un windows en un mac en un linux en un servidor que va a exponer esto para que esté disponible en una nube y ya está mi despliegue no tomaría todo esto ya evolucionado bien cabrón este yo también era me tocó bueno llevo ya 11 años en esto a mí me tocó también cuando este pedo era de que había un webmaster y se instalaba un piche server un tomcat una y es la madre de esas en un servidor la convertía con firewalls le metía proxies la chingada los ponía al server a internet habilitaba puertos cuidaba otros la madre media no muy tedioso el proceso pues sobre un servidor físico yo también trabajé en empresas donde tenía sus este sus rats de servidores y todo ese peor ahorita ya la mayoría se está migrando este pero bueno no todos me pareció una gran mayoría pues ya ocupan más bien una iniciativa en la nube ya le pagan la pija amazon a google ya depende de su proveedor que les guste este ya se puede ya eso se lo delegan a esa gente no y realmente la nube no es que sea piche tecnología 100% en la nube y al final esa piche nube toda la tecnología que tienen al final también son servidores sea lo único que pasaste es de que tus aplicaciones no las guardas en tus servidores tú tú físicos sino que se los dejas a los servidores físicos de amazon que haces que si los quieres mientras más públicos más privados los quieras pues te van a cobrar más pero qué significa que básicamente sus bueys compran los servidores que tú antes comprabas los ponen en una piche cuarto donde les dan un mantenimiento especial gente dedicada a cuidar tu servidor no eso es lo que compras es lo que te vende el clon computer eso ese es el concepto al final es lo mismo y pues imagínate la potencia que tiene sus piches servidores no esos cabrones pues tienen gente que les sabe ese pedo del escalamiento horizontal vertical puro pinche cabrón que hacen esto que funcione tú ya no te preocupas por escalar la aplicación o sea si te vas a preocupar pero ya del lado del desarrollo ya por el tema de la infraestructura de que le metes más memoria de que habilita esto que la chingada que hace la depuración de log porque la ya todo eso lo hace la la piche nube no esa es la tecnología la opción 1 opción 2 opción 3 entonces te digo esto ejercicio era un ejemplo más como una entrevista y que se note que sabes todo esto pero al final tú ocupaste esto porque te lo pidieron así en máquinas virtuales y la lo más liviano que otra también lo puedes decir así no por recursos la neta es que no es más liviano que que este que ya va ya o sí te va a pedir más más y por este lado no es más relato más rápido más más alivianado en chinés se instalaron en putiza en mi máquina y ya ese es el pedo de las de las aplicaciones sale entonces te respondí porque se usa no y de qué otra forma se puede armar las arquitecturas si más o menos te quedó claro pues ya para irle cerrando vamos a ver qué pedo ya con las aplicaciones le pongo foco a lo de los toques y las versiones de vio que pedo con lo de mbc y demás este pero no realmente vio ya no es mbc no ya ya no es mbc ya es otra otra tecnología que te digo es que no de hecho hasta donde yo me quedé yo te digo del modelo angular ya no tienen un patrón o sea ya ya nos no me acuerdo cómo se llaman se puede decir que son arquitecturas basadas en componentes o sea lo que ocupan son componentes no este pero como traen un patrón tipo mbc o sea ya ya no son son aplicaciones que más bien sirven para hacer s p as no sin que el precio es aplicaciones es peas pero no no no vas a encontrar un modelo una vista un control no no no no digo lo puedes manejar pero no es la idea framework está diseñado para otra cosa no para no para eso sale este bueno a ver entonces la siguiente página yo te doy una chuleta de comandos aquí tienes el baquén entonces el baquén así ejecutas la aplicación no con no la la la aquí tienes la ip haces el pin telnet para hacer pruebas entre tu host local y la conexión a al puerto bueno a la máquina no algo aquel ahora vamos a ver esto de los puertos porque hablando hablar de los puertos son dos requisitos fundamentales uno es el firehull y otro es la directiva de como se le puede decir de restricción de puertos los alous solamente permitas la entrada a través de estos puertos hacia tu server del 22 y del 80 y el proxy te va a ayudar a hacer la redirección va entonces esos son esas dos cosas son las que en cuestión de configuración en el engine next te va a permitir para agregarle una regla que es un firewall un firewall inverso y ese firewall único que hace es este redireccionar desde un servidor hacia un puerto 3000 o 3030 no me acuerdo que puerto quería sí y ya y lo otro se hace del lado del sistema operativo lo del lo de las reglas de restricción de puertos puede ser así restricción de puertos sale entonces aquí por ejemplo este comando en el map nos permite ver todos los puertos activos en tu host y ahí vas después de que nosotros hiciéramos el tema de la restricción de puertos esperas que este comando te devuelva nada más los puertos en donde puede acceder a los que se le puede comunicar desde fuera pues los que están expuestos entonces aquí está lo del restricción de puertos es una configuración a nivel del servidor esto se hace en el baquén para eso tú ocupaste una tecnología que se llama u f w propia de un server si eso quiere decir que se llama un complicate firewall entonces con este un complicate firewall cuyo comando es el u f w lo que hace es que te permite restringir o crear reglas para que tú le digas desde que puertos solamente quieres que que estén habilitados en este caso la magia es este los que te decía la conexión de a un puerto en tu servidor es esto tú le dices la regla permíteme el 22 o habilítame el 80 es lo que te quiere decir esto hace que el servidor por default solamente escuche conexiones entrantes a este otro tipo de reglas que te digas que no te gusta esto y ya hace el 22 y el 80 esta otra regla por ejemplo niega el acceso si yo quisiera tapar el 22 ya nada más le meto esto ya ni por ahí entra y este comando me permite eliminar todas las reglas entonces este paquete un complicate firewall es más que un puerto de la magia de la que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el 22 y el 80 es el que te pongo el
on 2024-02-06
language: ES
WEBVTT porque al final teníamos que ver este, digamos este, ¿cómo se llama? Esta salida, ¿no? Entonces, este... Eso es lo que había que ver. De lo contrario, este, bueno, si se creó el comando y no se generó el tenesnames, pues muy probablemente lo pudiéramos agregar nosotros de forma manual. O sea, al final, ese archivo es para que nosotros lo podamos modificar como administradores y si tú te quieres conectar a una base de datos que tú dices que existe y no te conecta, pues puedes agregar ahí la conexión. Sí, pero ahí más bien habría que ver qué se ejecutó o que no se ejecutó. Y no, Aron, a ti muchas gracias. Muy buena observación realmente. Perfecto. Entonces, vamos a regresar a donde estábamos, que era acá. Alguien más tiene alguna inquietud o observación? Perfecto. A ver, sí pudieron vernos todos, ¿no? Harald, que va a estar en nuestro futuro de ver, pero que se lo puede ver. Ahí estás. Bien, Orlando, igual. Perfecto. Listo. Vale, entonces continuamos. Entonces, respecto de eso, nuevamente el pomodoro. Listo. Ok, entonces, bueno, esta parte ya la platicamos y bueno, aquí nos está dando, digamos, un ejemplo de lo que es entonces vamos a leer un poquito de teoría aquí a ver quién me puede ayudar. Orlando, me echas la mano con esta de positiva? Creo que ya dimos la vuelta. La 96 la tendrás a la mano. Es la 96, correcto. Ah, bueno, si quieres ahí retom. Muchísimas gracias, Orlando. Y bueno, ahí nos dan la instrucción de todo lo que nos platicó este Orlando de cómo se puede ejecutar ese servicio. En este caso aquí se está poniendo un ejemplo que se llama HR, APS service. Podrían por favor mutear sus micros? Ah, no, adelante, adelante. De mutearme. Sí. Ah, es muy buena duda. Sí, justamente yo también no me quedé pensando de que en esta diapositiva a lo mejor hace ruido meter esto de un entorno dockerizado porque como que da a que se aseguren de que ocupen este service. Sí, van a hacer esta parte. Entonces, este servicio ahora está listo para ser utilizado por las aplicaciones clientes, permitiéndoles conectarse específicamente al esquema human resources y posiblemente beneficiarse de una configuración de gestión de recursos y carga de trabajo personalizada. Va, que es como lo que comentamos. Para que yo pueda quitar esos cambios, solamente es apagar el servicio. Entonces puedo detenerlo. Ya con eso, estaría bajando el service. Ya no, ya aunque te intentaras conectar, pues ya no te va a dejar y o eliminar el servicio, en caso de que ya no lo quiera yo estar ocupando. Aquí vamos a entrar en esta diapositiva en un poquito más de detalle de lo que es este service. Te va a entrar en detalles diciéndote uso y el objetivo por si queda un poquito más suelto. Entonces, la creación de un servicio a base de datos específico como HR APP Service en Oracle Database sirve para varios propósitos importantes que mejoran la administración, el rendimiento y la seguridad de las conexiones y las sesiones de base de datos para aplicaciones en específico. Vamos a explorar el propósito, uso y un ejemplo detallado paso a paso de cómo crear y utilizar HR APP Service para una aplicación que accede al esquema Human Resources. Propósito y uso. Gestión de carga de trabajo. Los servicios de bases de datos permiten la segregación de la carga de trabajo. Puedes asignarles prioridades diferentes a servicios distintos, optimizándose el rendimiento de aplicaciones críticas. Balancio de carga y failover. En entornos real applications clusters, los servicios de bases de datos pueden ser configurados para balancear cargas entre nodos y proporcionar un failover automático, mejorando la disponibilidad y la resiliencia de las aplicaciones. Luego dice, segregación de recursos. Los servicios de base de datos permiten la asignación y limitación de recursos a aplicaciones específicas, asegurando que las actividades críticas tengan los recursos necesarios sin ser afectadas por otras cargas de trabajo. Y finalmente, también nos ayudan a facilitar la conectividad. Cuando nosotros usamos un servicio de bases de datos, las aplicaciones pueden conectarse más fácilmente a la base de datos correcta y al esquema apropiado, especialmente en entornos de cargas. Aquí, bueno, entra un ejemplo paso a paso y entra una suposición. No, supongamos que queremos crear un servicio de bases de datos, aquí como lo vamos a estar manejando, HR y AppService, para una aplicación de recursos humanos que accede al esquema HR. Este servicio va a facilitar la gestión de la conexión y la carga de trabajo específica para esta aplicación. Es decir, en este ejemplo, podemos ver cómo el service va a gestionar dos cosas muy en particular. ¿Cuáles son? El tema de, nos va a ayudar a tener una gestión en las conexiones y también nos va a ayudar a gestionar una carga de trabajo específica para la aplicación. Entonces, tú, bueno, aquí dice, ahora con la Enterprise Manager o SQL Developer, que en este caso este es el que nosotros instalamos, literal es el ID, pueden ser usados para monitorear el rendimiento y la utilización de este servicio, permitiendo ajustar la configuración según sea yo conectándome aquí a mi conexión de Sys, tengo un primer comando que yo puedo aplicar que se llama Show Users. Show User, perdón. Este comando o esta instrucción también ya la habíamos aplicado ayer, ¿se acuerdan? En la sesión cuando hablamos de los Triggers, porque me permite dinámicamente calcular cuál es el usuario que está haciendo alguna operación. En este caso, aquí me dice que me use el Sys y es correcto porque yo me estoy conectando a mi instancia de Sys. Si yo me conectara desde HR, pues aquí lo tengo, ¿no? Aquí lo tendría. ¿Les parece que a las 10.55 hacemos el corte? Porque bueno, esto sí es más extenso, no lo vamos a ver en minutos, pero para que no se nos vaya ahí la idea. Entonces, si yo ejecuto Show User en la conexión de Sys, voy a ver aquí el usuario que se conecta, pues es el Sys. Si yo lo ejecuto en el HR, aquí si te fijas, el usuario es Human Resources. Con eso nosotros vamos a tener dos otros dos comandos en la parte de User. Déjanme ver si está aquí también puesto. Sí, pues literal es ir copiando estos queries, estos consultas. Creo que hace falta unas que no están. Voy a compartir todo este bloque. Lo voy a ejecutar aquí está el Docker Inspect. Ah bueno, eso es lo de la conexión al Icone. Voy a reemplazarlo de los queries. Todo esta parte es todo esto, todo esto, todo esto. El SQL Area. A ver, déjame ver. Low time desk. Ah sí, perfecto. Bueno, nada más era agregar unas que otras líneas, pero la voy a poner para que sea más directo el comando. Salí. Ahí por si lo quieren ocupar. Empieza ahí desde donde está el Show User para que ustedes también puedan hacer esto de ver quién es el usuario y demás. Bueno, una siguiente consulta es esta que básicamente lo que está haciendo esta consulta es conectarse a una tabla que se llama DBA Users, que básicamente me dice dónde están todos mis usuarios DBA dentro de mi conexión. Y bueno, aquí yo lo estoy filtrando con el username DBA. Creo que tal vez a ustedes no les va a parecer nada si ejecutan eso, a no ser que ayer también hayan añadido permisos de super usuario a HR. Para hacer eso, déjenme ver si lo tengo acá. Es un comando también muy sencillo. Más bien yo creo que lo tendría en esta de acá. Déjame ver, ahí creo que no. Déjame ver si lo tengo acá. Sí, DBA. Vamos a ver, este es el comando. Alter System. Secure Plus. Bueno, si no ahorita se los actualizo. Justo ahorita en el comando, se los pongo aquí, ¿no? Para que lo tengan. Es un comando que básicamente, o incluso puede ser que estén en las de hasta acá abajo. Bueno, ahorita lo busco y lo pongo. Básicamente es un comando para que HR se comporte también como un super usuario y un DBA. Y esto más que nada es para que él también pueda, sin necesidad de estarme conectando y desconectando, lo hice con ese objetivo, pues puedas añadirle permisos. Creo que está por acá. Bueno, es un comando grand, literal. Me pierdo un poco de intercomandos, pero creo que no lo tengo en la mano. Bueno, lo voy a poner ahora. Básicamente es darle grand al usuario HR. OK, entonces ya por eso es que, o sea, esa pauta la hice más que nada por si a ustedes ejecutan esto y no les aparece el usuario OK, entonces pongo el siguiente pomodoro y este comenzamos. Listo, entonces este ya sería el tercero, ¿va? OK, entonces, ah, bueno, decíamos que continuando con estos mecanismos de monitoreo, esto es complementando el tema de los servicios, o sea, si nosotros hubiéramos creado un service e hiciéramos una prueba en donde aplicaciones y demás se conectaran a la base, lo mismo que vamos a aplicar ahorita aplica para que si lo hubieras creado o no. O sea, al final lo que vamos a hacer es aplicar a la base todos los ítems que trae dentro del asistente de DBA. Y básicamente esto es un apartado que me permite, como el nombre lo dice, ser todas las herramientas pensadas para un DBA. Muy en específico ahorita nos vamos a centrar en el tema del monitoreo. Entonces para hacer eso hay varias herramientas, muy en específico vamos a entrar a la parte del del performance, ¿sí? Voy a monitorar el performance y al colapsar este folder yo aquí me voy a encontrar con pues varias opciones. Una de esas opciones son una parte de los reportes, ¿no? Estos reportes cuando yo me conecto con Moosis me van a permitir, si yo entró aquí, me va a permitir habilitar o ejecutar reportes para un cierto periodo de tiempo. Hay demasiados combinaciones, digamos, de filtros de búsqueda que yo puedo ocupar. En este caso yo puedo elegir un periodo de tiempo que me diga hace cinco minutos, los últimos diez minutos, un comando muy en específico te lo dé en formato report. Entonces yo lo voy a dejar como estaba ahorita así como por default, le voy a poner tal vez diez minutos para aquello de que hemos dejado pomodoros y si tú estás en la vista de admin, de hecho este usuario tiene habilitado este botón aquí dentro de los reportes. Este botón es el que me va a permitir a mí generar el report. Si yo lo ejecuto, ahí vamos a ver cómo la herramienta de forma visual pues nos va a dar un reporte en este formato. Yo lo voy a poder guardar, lo voy a poder, creo que aquí es para abrir un navegador en una versión HTML, aquí se ve un poquito ya más este tal vez, digamos, en gusto se rompe en generos. Y bueno, a lo que vamos a llegar es a que bueno, te va a dar información de un reporte que si yo lo quiero editar, pues aquí lo voy viendo, de los últimos diez minutos sobre acciones que se han ejecutado en mi instancia. Entonces este reporte básicamente me está diciendo que esto fue lo que estuvo ocurriendo, estuvimos haciendo sobre este data source, sobre esas vistas que estuvimos consultando y aquí te va dando una especie de información de cómo se están ejecutando y bueno, creo que fue más bien de eventos, sí. Y pues bueno, también te va diciendo las tablas en algunos escenarios en donde se encontró información, el tamaño en costo de CPU, cuánto memoria estás gastando por cada query que se ejecutó. Entonces, aquí te dice cuánto porcentaje de actividad y demás. Y bueno, así realmente entenderlo, pues es más como de irse metiendo en detalle, ¿no? Incluso aquí hay una vista bastante útil que te va diciendo el identificador del query, que es básicamente algo similar a lo que te aventaría una consulta hacia estas vistas, ¿sí? Porque hablamos de los identificadores. Oracle y muchas otras. Muy en específico sobre el Ash Report Dware, ¿tienen alguna algún comentario o alguna pregunta? Inquietud, duda. Perfecto. Ah, el usuario de administrador lo podemos ejecutar con este botón. ¿Sale? Yo aquí finalmente ya nada más le agregué a la conexión un diagonal SIS para que me, pues yo lo pueda identificar como una conexión del usuario SIS de ver, ¿sale? Y pues bueno, es básicamente eso como se generaría la conexión SIS. Ahora, se acuerdan que antes de irnos les debía un comando, ¿no? De cómo darle el grant al usuario HR, pues ya lo adjunté también, ¿no? Ese lo pueden pegar, copiar, pegar, lo guardan para que no estén ahí añadidolo cada rato y listo. Ya con eso podrían pues saltarse ese paso, ¿no? De estar agregando las passwords a cada rato. Tú me avisas, ¿eh? Cuando ya lo podamos continuar. A ver, vamos a, me voy a conectar tu máquina, Aaron. Este, a ver, vamos a ver. Aaron. Ah, perfecto, bien, Aaron, bien. A ver, déjame conecto con Aaron porque aquí esta cosa, mira, se esconde y se confunde el puntero. Ahí está. A ver, dice que, ah, mira, ¿sabes qué? ¿Sabes por qué? Es porque el rol en el cuadro de lista desplegable lo tienes como default. Hay que ponerlo como SIS de ver. Ahí donde está el cuadro de texto de username a la derecha hay un rol ahí mero. Ponle SIS de ver a por favor. Andale y dale probar. Dale test. Primero dale test. Ahí mero. Ahí está. Ya está suceso. Ya te conecto. Ya, ya vas a conectar y les pido. Perfecto. Ok, alguien más. No, continuamos. Va que va. Entonces le seguimos, ¿va? Bien, entonces, entonces, íbamos en la parte de, ah, ok, seguimos con el tema de los herramientas, de la herramienta gráfica. Vamos a ver otra, digamos otra herramienta de performance. Recuérdense que ahorita lo que estamos viendo es, esto se puede interpretar así, estamos viendo el performance, monitoreando el performance de nuestra conexión de la instancia que está en el usuario SIS. Y la la instancia y todo eso, la conexión, pues la sabemos por el conexión stream. Entonces aquí en el AWR, aquí mismo en la en la ruta de performance, vimos el Ash Report Viewer. Ahora vamos a ver una sección que se llama AWR. Nada más con darle click, sin colapsar nada, aquí se va a dar cuenta de que tenemos este, pues una pequeña información que es la de la base de datos. Creo que era acá. Era una vista que te genera, no, estos son, ah, acá está, ya, el estatus de la base de datos, mira. Esta otra vista está bastante buena, bastante completa y creo que con esta terminamos el ejercicio de visualizaciones. Sí, básicamente la instancia y la versión de la base de datos sabemos que es Oracle 19. Ahora, esta otra vista de acá está un poquito más elaborada, voy a cerrar esta porque realmente está, consume un poquito más de memoria. Y si yo la ejecuto, me va a dar un panel más gráfico, más visual de cómo se está comportando mi instancia de base de datos, ¿no? En este caso, pues ahí ya podemos ver incluso gráficas en tiempo real de pues lo que se está monitoreando. Realmente esto sí, pues requiere un hardware más específico. Bueno, realmente la máquina que nosotros tenemos, esta de DADSTOP, me refiero, está bastante, tiene mucho hardware, pero pues al final, yo siempre he dicho, estas máquinas son virtuales, son virtualizaciones, no se van a comportar como pues una máquina física, ¿no? Creo que es más bien como Leo, ¿no? Este, quién tal vez puede dar más retro o no sea alguien de ustedes que haya ocupado esto. ¿Alguna vista tal vez así en sus monitores? Ah, perfecto. Bueno, a lo mejor por temas de tiempo no nos va a dar chance de acabarlo completo, pero las instrucciones ahí van a estar, ¿no? Yo voy a hacerlo lo más rápido que pueda, pero más que nada lo digo con la idea de que a lo mejor a ustedes no les da tiempo ejecutarlo completo, o sea, sí, revisarlo, pero que ustedes no lo ejecuten completo, porque estas máquinas se crean y creo que sí se tardan un poquito. Yo ayer lo estuve probando y pues sí, sí se tardó un ratito, pero entonces vamos a trabajar con la mía que ya se hizo para irlo como explicando y ya nada más ustedes lo van este siguiendo y se queda el vídeo por si lo quieren ir acomodando si nos da tiempo, pues ya lo dejamos o si lo quieren ir haciendo a medida que yo lo voy también como explicando, pues también es una buena idea, es una opción, ¿no? Pero bueno, entonces la práctica consiste básicamente en hacer ya actualizados con los valores, ¿no? Tenemos aquí 8 GB de memoria, el límite de memoria 32, 8 CPUs, bastante bastante fuerza, entonces es mejor copiar esa configuración. Creo que no tenemos a este punto ningún problema con leer este Docker, este archivo, porque realmente es lo que hemos estado haciendo, aquí lo único nuevo tal vez es que además de una base de datos necesitamos otra cosa, esa otra cosa la estamos llamando LDAP server, es decir, que vamos a tener dentro de este contenedor dos servicios, una base de datos y un servidor del tipo LDAP que básicamente lo que decíamos, ¿no? El tema de las imágenes, en este caso muy diferente a nuestra instancia de Oracle en la que nosotros teníamos que definir las imágenes y demás, que de hecho yo estoy ocupando la imagen, la misma imagen que ocupé en mi otro contenedor, porque la imagen es digamos el paquete, el instalador por así decirlo de Oracle, entonces no le hace daño, pero en este caso la imagen, si se fijan no vamos a hacer todo el proceso de crear una imagen, ¿por qué? Porque esta si es pública, vamos a ocupar del repositorio de LDAP una imagen que se llama Ossitia, que lo que hace es permitirnos crear un servidor de este tipo, ¿no? LDAP, la última versión, ¿sí? Le vamos a agregar un nombre al contenedor, en este caso al de la base de datos se va a llamar así, para que no se choque con nuestro otro contenedor que se llama Oracle DB, aquí le vamos a llamar Oracle DB demo, y el nombre del contenedor, el otro es el LDAP server, ese no tiene problema que se llame, como se llame porque es nuevo, definimos variables de ambiente que se configuran, esto es lo que haría digamos una persona cuando instala un LDAP server en este en específico Ossitia, cuando lo configuran, ¿no? En los archivos de config, demás, aquí lo puedes hacer directamente desde el docker compose, lo estamos haciendo muy en particular con información dummy, ¿no? Como para nada más tener ahí una muestra, básicamente estamos agregando tres variables, ¿sí? La organización, estamos poniendo un ejemplo, el dominio, perdón, es que me tengo que provocar a veces los bostezos para, tengo ahí unas bronquillas con la respiración, pero bueno, y este y el password, ¿no? Aquí para entrar a la instancia de mi servidor, entonces son variables que se agregan a la digamos de ambiente y que sirven para la configuración de este server, y finalmente muy importante las dos mapearles puertos, en mi caso sobre todo la base de Oracle, la instancia nueva de Oracle, hay que darle un puerto diferente al Oracle, va, entonces con esa configuración ya no le hace daño, y ya finalmente en el server vamos a crear otros dos puertos, que son el 389 y el 636, y listo, con esto vamos a ejecutarlo, ¿sí? En nuestra máquina y obviamente, bueno, yo aquí ya lo había ejecutado, voy a mostrar nada más cómo se ve la la base de Oracle, ¿sí? A descargas, luego de ahí va, pueden ejecutar un mkdir, aquí le podría poner tal vez una nota de en la máquina host, ¿sale? Van a crear un mkdir de un directorio que se llama va, y con eso ya puedo acceder al mismo directorio, ¿no? te digo, estos son comandos más menos que puedes ejecutar en Windows, en Unix, si yo listo directorios, aquí adentro voy a crear uno más, un mkdir que se llama data, y ahí lo voy a dejar, y voy a crear un nano del archivo docker, docker compose, punto yaml, y aquí el archivo, lo voy a comentar, como docker compose, punto yaml, literal voy a crear este archivo, si yo ejecuto este comando, lo que va a pasar es que si no existe, me va a generar un IDE, un editor de texto, mejor dicho, llamado nano, si yo lo abro y no lo tengo, me lo va a generar, y si yo aquí ejecuto, por ejemplo, una lsla, ahí está el docker compose, ¿va? En la carpeta de data, creo que si ya lo podremos ir guardando también, me voy a meter en la carpeta de data que cree, y aquí adentro, voy a listar los directorios, y voy a hacer uso de dos archivos, dos archivos en particular, el create-all y el create-service, entonces mismo procedimiento, eso lo voy a ir poniendo aquí abajito, entonces aquí yo tendría que acceder a data, y crear nano de estos archivos, perdón, de estos archivos, si, estos archivos son punto l, se me olvidó la extensión, es ldif, ¿vale? Entonces este archivo es el oracle-service.ldif, pero ya me acordé que este archivo de oracle no lo vamos a ejecutar, pero bueno, nada más lo voy a dejar ahí como para ilustrarlo, este archivo no se va a ejecutar, entonces, ¿qué pasa? Vamos a explicar un poquito estos archivos, estos archivos ldif, que están contenidos dentro de la carpeta data, los voy a explotar antes de crearlos, son archivos que se puede decir que son algo así como reglas, que se le van a meter a nuestro servidor ldap, y esas reglas lo que nos ayudan es a setear o administrar ciertos, ciertos escenarios, ciertas reglas, muy en particular nuestro objetivo es crear un servidor que va a manejar o va a administrar la autenticación, como habíamos hablado los ldap son servicios que o servidores que nos sirven para delegar pues muchas más cosas, no solo el, vamos a supon, bueno, una aproximación que a mí se me hace válida para definir el ldap es algo así como un servidor de configuración, algo así, va, entonces en ese archivo van a vivir reglas, reglas que te van a poder a ti ayudar a gestionar tu base de datos de una forma distribuida, es decir, por cuestiones de administración, de organización y por qué no decirlo también pues de seguridad, todo lo que esté en mi acceso a la base de datos ahí no va a vivir, va a vivir lo que está haciendo es crear una regla que el servidor ldap así las interpreta, aquí el problema es que digamos que para tener esto, vaya, este archivo de oracol service sirve para que tú puedas este, hacer configuraciones muy en específico del servidor que se llama oracol, esta propiedad es bastante importante, por qué, porque digamos que eso es algo así como que le está diciendo al archivo qué paquete debe de ocupar para definir o para gobernar las reglas que vamos a definir, en este caso yo le estoy diciendo que este class es un paquete de oracol por ejemplo el create user qué contiene este archivo lo que dice es que básicamente estoy creando con un paquete que es un paquete, esto que te digo es el obje class es algo así como el paquete de digamos de instalación que se debe de ocupar para que las reglas gobiernen, en este caso y diferente al otro, el otro era un obje class del tipo de oracol, tenemos que hacer ahí configuraciones para que lo leyera, en este caso no, el inet org person es un paquete que es propio de los servidores ldap, entonces este paquete digamos va a compilar sin problemas, por qué, porque es un paquete que está interno dentro de la propia instalación, entonces no hay que instalarle nada ni configurar nada, simple y sencillamente el servidor sabe que si yo estoy ocupando este obje class sabe lo que tiene que hacer, por así decirlo, es una de las features que ya tiene por default, entonces después de eso yo nada más defino digamos estoy definiendo algo así como entenderlo porque es entrar en un tema de configuración del ldap y nace el objetivo del curso, ahora no más queremos ver cómo se comporta ahora con la delegación o segregación de responsabilidades a nivel distribuido, sí, entonces aquí lo que también hace sentido ver pues es esto, no, nuestro uuid, nuestro nombre de usuario y demás, aquí lo que tenemos también que prestar atención es en el password, este password o esta propiedad yo la estoy mandando de forma encriptada, aquí adentro tiene un valor de una contraseña que yo conozco y que encripté en ssha, cómo voy a saber aquí que, por qué se hace así, porque obviamente si el día de mañana es tejaro, esa contraseña, ah bueno, esto de acá me lo voy a copiar, copiar, sí, y me lo voy a llevar a mi instancia, a mi terminal, qué pasa con esto, ah bueno, voy a llevármelo aquí a donde estoy, en mi instancia host, porque aquí fue donde instale el paquete, entonces básicamente esto, hay una herramienta, sí, que te permite este trabajar con encriptados desde la línea de y listo, cuando yo tengo eso, si ustedes se fijan, ahora voy a abrir los dos, el create ou y el archivo para create user, ya están los dos archivos, entonces esto está encriptado, nadie sabe más que nosotros que el valor de este password es 123456, que es con el password con el que se va a conectar el usuario cuando entre a la instancia de orca, entonces esto ahorita lo vamos a ir ejecutando para que tengamos esta oportunidad de ir viendo y avancemos aunque sea en la práctica, si no nos da tiempo, ya tengamos la mayoría de comandos creados, va, entonces aquí voy a hacer una primera pequeña pausa para que me alcancen a crear estos directores, estos archivos y yo voy a ir monitoreando así de forma rápida para ver si no hay algún problema, lo único que hay que hacer, si quieren quitar, no crear el service, está bien, con los dos primeros es suficiente y después vamos a ver cómo esto se va a ejecutar directamente en el contenedor que contiene nuestro servidor el edap, pero es necesario tener estos archivos, entonces primero hay que meternos, hay que salirnos de cualquier instancia y en nuestro home, hay que hacer esto, sobre todo para también ayudarles con la parte de la instalación del paquete que crean los SSHA, entonces a ver voy a ir monitoreando y de todos modos por si alguien tiene alguna inquietud o duda me pueden ir diciendo, vamos a ver, a ver mientras voy a ver, creo que ahora no tiene un poquito más a la mano, a ver voy a checar con Aaron primero, esta cosa como que se pierde y mira no me deja acceder a tu, ahí está, entonces vamos a ver, con Aaron, ok ahí Aaron estás creando el docker, sale, estás creando el docker y sabes cómo salir ahí para guardar, ah perfecto, bueno, ahí lo que hay que hacer es, mira, si quieres con tus flechas, primero hay que quitar ese espacio, ese cuadrito como rojo, literal que estás marcando un espacio tal vez como una saldía, ahí no funciona el cursor, tienes que hacerlo con las flechas, ahí es como si fuera un editor de texto, entonces exactamente, otro supremo, ahí está, perfecto, ahora sí ya podrías presionar el siguiente comando, mira, vas a presionar la tecla control y la tecla X de tu teclado y te debe salir, te debe sacar, ahí está, ahora, ahí si te fijas hasta abajo cambió el prompt, ahora te dice save, te lo está preguntando, ahí tú vas a escribir nada más la tecla mayúscula y griega, creo que también la minúscula siempre, y ahí te va a decir el nombre del archivo donde quieres escribir, que de hecho ya lo tienes, docker composable, nada más, ahí ya nada más tienes que dar enter y listo, si tú vuelves a ejecutar el nano o un cat ya debes de poder ver el contenido si escribes la letra D y el tabulador te lo complica, ahí hay dos coincidencias, entonces escribe la O, le das enter y ahí te va a abrir el archivo, ahí está el contenido, entonces ya creaste el primero, ahora sí con eso podrías ir creando los otros, ahí tendrías que crearte la carpeta data, meterte a data y crear los otros archivos, ya la creaste, perfecto, entonces ya podrías acceder con CD, data, enter y ahí escribir por ejemplo ls espacio, guión la, exacto, y no tienes nada, entonces ahí ya podrías crear los nuevos archivos con la misma forma que creamos ahí estás adentro de Oracle 19 DAP, ya la creaste, perfecto y ahora vas a crear el comando, el archivo docker compos, es correcto, perfecto, le das pegar, es correcto y ahí estás, ok, en el IDE ahora tú vas a poder ejecutar lo que está en el docker compos, es correcto, le das copiar nada más ahí ten cuidado con el comentario, la línea de arriba no se, esa no se copia, nada más es este hasta el versión 3.7, correcto, exactamente, ahora igual ahí parece que algo se copió, algo está mal ahí en el Coucher, hay que quitar ese espacio, con las flechas ahí el cursor no sirve, te vas hasta arribita, bueno hasta ahí donde es y con suprimir, exactamente, hay otro suprimir para que lo mate, ahí está, perfecto, podrías darle un ente si quieres para que sea más visible para ti que hay dos servicios, no, oracol DB y el otro es el LDP server, así lo puedes dejar no hay problema, le puedes dar con control y X, vas a cerrar el modo editor, si puedes presionar control x, ahí está, ahora ahí el prom cambio hasta abajo dice save modified buffer, tú vas a presionar la tecla Y y ahí te dice el nombre para escribir el docker compos, si es el que tú creaste, ahí nada más le das enter, listo, ahora puedes volver a entrar con nano o con el comando cat y vas a ver el contenido del archivo, cualquiera de los dos que quieras, ahí básicamente, o sea después de crear el docker compos, a mira te doy otro tip para que no estés buscando así los comandos con la flecha de arriba, exactamente, con la flecha de arriba podrías recuperar tu comando anterior, entonces ahí estás, ahí ya está guardado el archivo, ya está todo bien, te vuelves a salir con control x, no es cierto, dije Aaron y es Jesús, ok, ahí te puedes salir con control x, ok y entonces ya seguiríamos haciendo los demás, va, dentro de la carpeta data, los otros archivos, los LDF, perfecto, va, entonces te dejo a ti mientras y me voy a ir a otro lado, a ver entonces ya está Jesús, ya está Aaron, vamos con jaron, listo, a ver entonces jaron ya creaste la carpeta de descargas oracol 19 dap y estás en data, o bueno te pregunto en qué carpeta estás ahí ahorita, correcto, entonces ya creaste el ok ahora vamos a meter la carpeta data y ahí estás y puedes ejecutar ls espacio guión l a y si le das enter ahí está el oracol service te hace falta entonces un archivo, ya creaste el contenido ahí, ya lo pegaste, ok entonces acuérdate que el oracol service no lo vamos a ocupar porque era más como ilustrativo, vamos a ocupar más bien los otros, el create ou y el create use, realmente ese archivo no nos va a servir de mucho, digo está bien que lo hayas copiado, pero este no lo vamos ni siquiera a ejecutar, más bien te tendrás que bajar hasta donde dice create ou ldf ahí mismo en esa carpeta hay que crearlo, correcto, te llama create guión ou.ldif, enter y ahí vas a copiar y pegar hasta donde son tres líneas, correcto, vas a copiar y te lo llevas al pegado de exacto, le vas a dar control x y lo exactamente y ya creaste ese otro, ahí te pido que te saltes ahorita los comandos de docker cp eso soltando los, ahora seguiría el user, perfecto, entonces te dejo ahí con esa parte y vamos con Orlando, listo Orlando, ahí ya estás creando el docker compose, correcto, ahí le das reescribir, enter y se te va a crear, ahí está perfecto y luego vas a poder crear los otros, creo que no tuviste problemas verdad, perfecto, entonces te dejo y nada más me falta León, vamos con León y listo, entonces León ya creó, ah incluso León está usando V, ok, va que va, entonces León está usando, ah ya estás con el último, con el, este, ah bueno estás creando ahora con service, correcto, le vas a copiar, ese realmente no lo vamos a usar pero está bien si quieres usarlo, nada más como para ti, ok, ahí está, muy bien, ándale, perfecto, va entonces también no tienes bronca, estás ahí creando los archivos, perfecto, bien, bien, sale, a ver vamos a ver qué le salió, ah perfecto, ahí te está diciendo por qué te salió eso, mira ahí nada más dale enter, enter pero por qué te salió, que agregaste algún comando, ese es el de la instalación del paquete de encriptado verdad, ah perfecto, ok, ok, entonces ya que lo tienes ya vas a poder este encriptar tu paquete, entonces tendrás que modificar el nano al paquete, al archivo que creaste del user y ponerle el password que te generó el encriptado, exactamente, exacto, ese de ahí lo tienes ahí en la mano, guárdalo y ahora ejecuta nano sobre el archivo de, ándale, cópele, correcto, ah ahí no sirve el comando, ándale, ahora dale este nano al archivo del create user, ok la vas a guardar en tus notas, ok y ahí, nano, user, escribe user y con tabulador te lo va a completar o la pura tabulador, ah pero creo que era create user, ah, es create user, escribe create y presiona tabulador y te lo va completando hasta donde anulas exactamente, ahí está, create user, entonces ese user password hay que quitarlo, ahí me equivoqué en la guía, más bien debimos saber primero copiar, generar el liste, el archivo, el de igual encriptado y luego para no hacer modificaciones ya nada más copiar y pegar, pero bueno ya lo hicimos así, ahí mero y luego le das control ue, ah no clic derecho pegar, más bien clic derecho pegar, ahí, ya le das control x y con eso ya se tu cambia y ya cachó tu encriptado, es correcto, si se guardó no, ahí perfecto, bien entonces, entonces dame oportunidad de este verlo con los demás compañeros, va, este hay que ver la parte de la instalación del paquete de encriptado, entonces a ver voy a ver con Aron, podrías ejecutar el comando que puse, ah quién levantó, Leon, Dime Leon, copia, a ver a ver, a ver déjame, por qué no me metía tu instancia,
on 2024-02-06
language: ES
WEBVTT La otra forma y la otra cosa que hay que hacer es meter un comando que se llama Docker Compose, que ya lo tenemos instalado, espacio, up y nada más. Va. Una vez que hagan eso ustedes, si quieren ya vayanlo haciendo para que les vaya creando los contenedores. Va. Y con eso ya acabaríamos hoy y ya en la siguiente sesión que es la del lunes retomamos para ya poder hacer la práctica de cómo se hace esta conexión. Ya de hecho ya estamos ahí por acabarla. Hicimos un 70 por ciento. Nada más quería. Si hay que dejar esto corriendo para que ya cuando lleguemos el lunes ya esté todo instalado. Por favor si pueden ayudarme con esa parte y ya mientras lo vayan haciendo, pues yo creo que ya hora de salir. Tarda más o menos que serán. Como unos cinco minutos, tal vez cuatro minutos. Ya terminó. Perfecto. Este o sea, si viste todos los logs y te jalo todo, si dice y contiene, creo que dice no, algo así. Ok. Así es cierto, puedo ver tu monitoreo. Vamos a ver. Es que tengo que estar con el. Quien el web voy a ver. Me hablo a verdad. Sí. A ver, vamos a ver. Alcá estás. Entonces, creo que no. Ah, bueno, pusiste el menos de a. Perfecto. Ahí está. Mira, ya te dicen las instancias. Este. Dome ya están en Dome. Entonces vamos a hacer un último comando aquí con tu máquina. Por favor, escribe doctor compos con las mismas flechitas de arriba. Como si fueras a volver a escribirlo. Selecciona el comando. Ahora ahí borra, borra el up y el a. V borra, borra esos dos. Hasta ahí escribe porfa. P es P de papá, ese de. Sánio. Es. La lenta. Y con eso. Te debe de decir. Ahí está. Ya se están levantando las instancias. La de ahora con debe demo es la que todavía está iniciando. Pues eso me refiero a que se tarda. O sea, no tanto en crear el compost, sino que en que la instancia responda. La de la base de datos es la que tarda un poquito. De hecho, ahora hazme un favor, vuelve a hacerle hacia arriba y borra la parte que dice guión con post para que veamos nada más cuánto más o menos va a demorar. Que es lo que yo te decía más o menos como cinco minutos. Borra el guión con post. O sea, también la palabra con post. Así nada más. Do que pese. A enter. Ya con eso ahí te va a decir mira, lleva dos minutos de que lo creaste y todavía sigue start iniciando. Entonces eso si lo vas haciendo hacia arriba y ejecutando varias veces el comando, vas más monitoreando cuánto cuánto va tardando. Más o menos son aproximadamente cinco minutos. Entonces ya que llegues a eso ya le hiciste. Pero bueno, eso ya se va a quedar ahí mientras ya el lunes lo retomamos. Sí, dime. Es creo que es. A ver, me conecto para poder verte. Dime. No. Es sí, a ver, vamos a hacer otra cosa. Ayúdame, por favor. Ah, es que si lo está jalando, porque. Qué dice? A ver, ayúdame por. Ah, ya sé. Mira que a lo mejor ya se había creado el contenedor. A ver, dale, dale, por favor. Ponle cat. Sé, séate, séate. No sé de casa. Ah, de año. Ándale. Y ahí escribe. O escribe de tabulada para ver su su contenido. Correcto. A ver, ahí están. El volumen. Está el version. OK, sale. Y OK, entonces seguramente. Se está haciendo. O sea, lo que nos está diciendo es que se está repitiendo. Estás intentando repetir la creación del server. Entonces mira, ahí vamos a hacer. Vamos a bajar los dos contenedores en caso de que se hayan creado y volvemos a crearlos. Entonces ayúdame a ejecutar el comando Docker, guión, compose espacio. Y escribe da de o no de o w n da como tirarlo. Exacto. Entre. Y con eso va a matarlos, los debería tirar y aparte matar. Ahí está vaciando, va bajando la base de datos. Y ahora ejecuta otra vez el. El Docker Compose o exacto. Es que sabes qué? Dice que la dirección tres ochenta y nueve ya está en uso. OK, mira, la forma de reparar tu error. Es. Vamos a tener que buscar cuál es el proceso. Que tiene la. El cómo se llama el puerto tres ochenta y nueve en uso y matarlo, porque por eso no nos está dejando entrar. No es que ese comando, ese comando lo podrías buscar en Google. Yo no lo tengo a la mano, pero podríamos buscar algo así como matar el proceso con el puerto. Si mira, si quieres, yo lo puedo buscar y te lo traigo para que lo actualices. Pero a ver, déjame ver si lo puedo buscar alguna vez en Google. A ver, es algo como. Creo que es un kill. No me acuerdo bien. A ver. Fine. Procesos y sin port. Anquil. A ver, vamos a suponer que este proceso. Probablemente a ver si te sirve hacer este mira. Voy a copiar esto aquí en el en el coche. Lo voy a pegar hasta arriba, hasta arriba. Digamos que es exclusivo para matar el puerto. Vamos a ver si esto nos ayuda. Este básicamente lo puedes copiar a ver si puedes copiar el primero. Ya están en el coche. Ahí donde está. Voy a ver a Harold. Harold. Harold. Harold. Acá. Ok. Vamos a pegar el primero. Ahí donde dice port, cambialo a tu puerto. ¿Cuál es el que te está diciendo? El 389. Dale enter. No tienes netstat, entonces instálalo. Sudo apt install nettools enter. Ahí esperamos. Y ahí otra vez, mátalo. Ok. A ver, quita el dos puntos. A ver si quitas el. No es que si debe de ir el fin. Es T.R. Que sabes qué puede ser que. A ver en qué distribución de dinos lo pusimos. Fine. Es T.R. Es que no nos está. Buscando eso. No en el PX. Este no puede ser. A ver si lo si lo metes así con. Lo que está después del fine. Es T.R. Mételo entre comillas. Mira, voy a. Voy a actualizar de hecho el comando. A ver si te sirve este. Y en vez de 80 80 le pones el puerto 300. No sé qué era. 389. Y esto probablemente tiene que ver con la versión de Fedora con esto. Esto que lo hice, lo busqué, lo encontré en Ubuntu. Yo creo que mira, para no tardarnos más, me lo voy a tener que llevar yo eso y ver cómo puedo matar ese proceso. Ahí tenemos que ver más bien ese. Ese proceso. Sí, pero eso es lo que te está mandando el. Otra otra que podrías usar es cambiar el puerto al docker con post. Digo, si ahorita lo quieres crear así, cambia el puerto en vez del 389, pues pon el 388. Tal vez no es eso otra. Este. Pero bueno, voy a buscar el comando para en Fedora matar este archivos. Ahí. Ahí pone este docker con post. Nano Docker escribes la de tabulador y ya con eso. Y te bajas hasta donde dice el puerto 389. Hay que cambiarlo por el puerto. Este ahí déjalo ahí déjalo en 389 y ahí en el otro pone 388. O si quieres poner 388 los dos para que no de problema. Ajá control X. A ver si ese puerto también no está ocupado. Dale salvar. Entre y otra vez este vuelve a ejecutar un. Checate si está guardado. Tabulador correcto. Ahí está. Ahora dale un docker con post. Dome y luego lo volvemos a levantar. Primero el do. Y luego le vuelves a dar. Docker con post. Ahí parece que sí te respeto el 388. Pero hay que buscar la forma de matar el otro no para que. No haya tema. Va, pero bueno, ya ya con eso se va a crear el contenedor. Entonces ahora va, pues lo puedes dejar ahí corriendo y pues ya. Alguien más tiene alguna duda, comentario. Va, pues si no hay nada más, este. Pues ya nos robamos ahí 5 minutos, entonces. Ahí disculpa por eso. Entonces nos veríamos el lunes y continuaríamos con el temario. Y pues listo, pues muchas gracias por la. Por la atención del día de hoy que tengamos fin de semana. Igualmente. Hasta luego. Hasta luego. Buen fin.
on 2024-02-06
language: ES
WEBVTT y pues prácticamente así en así en este colorcito verde. Realmente, bueno, después de que se tiene esto, no debería de dar falla, o sea, no no debería de de no salir esta leyenda. Si eso pasara, pues ya ahorita lo revisamos y vemos qué podría ser. La otra parte que yo hice fue irme a la ruta en donde se encuentra el ID de ese cuelé, developer, para que lo podamos abrir. Entonces, de este también les voy a copiar el comando, que nada más es meternos a la ruta en otra pestaña. Si entrar a esta ruta, todo esto obviamente es antes de entrar a la instancia, es dentro de nuestro prom de la máquina, digamos cost, sale y ya una vez estando en esa ruta abrimos con este comando o esta instrucción nuestro ID. Eso es porque bueno ya empezamos a usar más el ambiente gráfico, las otras sesiones ocupamos las vistas de administración y demás, no? Entonces se ve mucho más gráfico el tema de los reportes y así. Entonces ahí lo active. Sí, y otra cosa y creo que ya es lo último. Pues ya de hecho con eso ya no tendríamos problema, ya podríamos usar la base de datos. Para terminar el programa anterior que estábamos viendo, el ejemplo más bien, voy a activar el otro paso, que es entrar prácticamente a la carpeta, ahora con 19ldap, y voy a poner aquí este y aquí adentro y nada más vamos a dar un comando docker compose, a ver ahí esperenme, porque no, ahí está, docker compose ps dentro de esta instancia y vamos a ver esta salida. Entonces pongo este último comando en una tercer terminal, tercer terminal, aquí voy poniendo cómo se ejecuta cada uno, sí, este es en el segundo terminal, segundo terminal y la primer terminal y se vendría siendo este, primer terminal. Entonces en esta última igual hay que meternos a esta ruta y aquí ejecutamos el comando docker compose, viendo esto reviso sus salidas y si ya todo está bien ya podríamos continuar con él, con la práctica pasada. Entonces básicamente son tres, tres este terminales, esto es lo que tendremos que ver en la última, básicamente este mensaje que dice que las dos están corriendo, estos dos imágenes o bueno contenedores y tienen que estar arriba con este mensaje, healthy, el de oracl. Entonces si quieren voy monitoreando con ustedes y si alguien tiene algún problema me avisa, aquí de todos modos voy revisando, más que nada pues para estar en el mismo canal y poder terminarla, ya hecho ya íbamos a terminar la práctica, nada más es entrar ya a las últimas configuraciones y con eso acabaríamos para hoy esta práctica. Ok, por ahí veo que Jesús creo que ya está en la tercer terminal, perfecto, vamos a ver si no les aparece nada, Aaron ya está, ah no a ti Aaron está iniciando, está iniciando la base de datos. Este vamos a abrir dos veces el SQL de Bellphil. No, no, no, si ya lo tienen abierto ya no, ya no lo copie, bueno ya no lo hago. En la tercer terminal se volvió a abrir. Se volvió a abrir? Si no, no, solo una, solo una. No hay que abrirlo una vez. Listo, ahí está también ya volando. Ahí está el Leon, ahí está, ya puedo abrir el Leon también. Aaron va y listo, creo que no han tenido problemas verdad, ya nada más esperamos a Aaron. Ah, creo que ahí Aaron tuviste problemas verdad, dice su sistema status docker. Ahora voy a dejar el comando, por si no los dejo iniciar el docker, solamente tienen que agregar el start, entonces pueden hacer algo así como, ahí lo prendemos, sería start docker. Ahí está, sus dos systems, ustedes no necesitan docker. Con eso, si no les llegara a iniciar docker con este siguiente comando lo podrían volver a iniciar. Ese que está ahí en la primera terminal. Va por si no les deja iniciar, con eso no podrían levantar. Listo, ahí ya más o menos se está agarrando, ok, ya nada más es cuestión de tiempo de que agarre. ¿Quién más tuvo problemas? ¿Carl, si pudiste? Creo que te mandó un mensaje ¿no? Sí, tengo ese mensaje. A ver, vamos a ver, déjame conectar tu distancia, es que aquí mira. Ahí está, a ver, dice ok, deshabilitado, a ver, ¿podrías salirte de ahí con control C? Ok. O si no cerrar la terminal de plano, si quieres cerrarla, ok, y ahí en donde, a ver una nueva si quieres. Ah, es que sabes qué, creo que tú ya tenías una abierta ¿no? A ver, ¿puedes ver qué otras terminales tienes? Ándale, ahí mero. A ver, tienes, tienes, tienes, se vayan a cargar el mundo. Ah, ok, tienes una de lead, tienes otra, ah, bueno, sí, está bien. Entonces en la nueva que estás abriendo, ándale ahí, ahí si quieres puedes agregar los comandos ¿no? Vamos a ver primero el status, creo que ya te dijo que no estaba activo ¿no? Sí. A ver, si quieres ejecutalo, vamos a ver qué dice. Ahí está, ya corre. Ok. Va, entonces ya está corriendo. Gracias. Sí, ya podrías continuar con los otros, este, ahí, ahí. Ahí son los otros tres. Es este y es este. Exacto. Ah, ya cargaste la terminal, ya cargaste el ambiente y, ah ok, perfecto, sí, ya estás, ya estamos en la misma línea. Sale, entonces, a ver nada más, a ver si ya no hay nadie más. Ah, listo, porque ya no. Ah, bueno, nada más faltar. Ahí ya no sé qué tengo que hacer más. Ok, a ver, me habló Aaron ¿verdad? Ah, sí, ya te vi. A ver, vamos a abrir la primer pestaña. Es esta ¿no? Este. Ok, ahí puedes presionar tu tecla de la flecha de arriba para volver a apretar el comando. Ahí. Enter. Ahí está, ya encontró la instancia. Ah, perfecto, ya estás. Entonces, en la de en medio puedes levantar el IDE, ahí mero. Este, en el Codeshare use un comando para levantarlo. Que es este, el de la línea 7, ese mero. Ese mero. Lo podrías ejecutar y con eso te va a levantar el IDE. Copiar, perfecto. Eso hay que quitarlo y entramos al 7. Perfecto, con eso le das y ya te va a abrir el IDE. Y ya, ya estamos en el mismo plano. Gracias. Perfecto, dale. Entonces, vamos a continuar con la práctica. Este, ¿se acuerdan más o menos de qué es lo que estábamos haciendo? ¿Qué se estaba intentando hacer con esta práctica? O ponemos una remembranza, un recuerdo así rápido. O alguien sí se acuerda de que ¿cuál era el objetivo? El objetivo era levantar una base de datos, ¿no? Ajá, correcto. Desde, o sea, como, parece que con los tables, con table names. Ajá, sí. Bueno, los names. Sí, los TNC names, ajá. Los TNC names, ajá. Y dentro del TNC names se expone que es la instancia. Ajá. Luego viene la base de datos. Correcto, ajá. La nueva base de datos es la famosa PDB. Ajá. La instancia es CDB. Ajá. Este es nuestro PDB, este es nuestro CDB, ajá. Se le configuró el tamaño de memoria. Ajá. ¿Qué es esto? Y se generó un, este, un nuevo usuario, ¿no? Exactamente, correcto. Esa es la palabra clave. ¿Hola? Y listo. Va, entonces, ponemos el siguiente pomodoro. Ok. A ver, voy a compartir pantalla. Y listo. Va, entonces, ahí nada más que se quite esta. Va. Lo último es este, revisar, ah bueno. No sé si en esta parte, me siguen con la parte de, de si tenemos esta misma, esta misma configuración de archivos. Eh, bueno, aquí no era. Estábamos en la instancia. A ver, déjame ver. Ahí ya no me pude conectar. Aquí estamos. Y aquí adentro, en la instancia, hay que ver esto. Entonces, para poder hacer ahorita la prueba de conexión. Eh, no sé si ustedes tienen los mismos archivos que tengo yo, sino para irlos, este, agregando. Más que nada, el que falta es este, creo yo. Si quieren, se los voy a poner ahí en el, en el Couch Share. Y, a ver, lo podríamos hacer aquí. Sería, dentro de esa ruta, sería hacer un MK, no es cierto, un nano, de este archivo. Que se llama, LDAP.hora. .hora. Y con eso. Agregarlo y ya. Revisar más que nada los otros archivos, que su contenido sea. Sobre todo el del, el de SNAMES. Tiene que estar como, no, este no, más bien el Listerer. Cat Listerer. No, es cierto, perdóname. El SQLNet. Aquí le ponemos SQLNet. Ahí está. A ver, entonces, voy a repetir. Cat. Tenemos que tener esto. Cat DLDAP. Cat SQLNet.hora. Así. Esto es lo que tendríamos que configurar. Va, entonces, lo voy a dejar aquí en el, en el Coucher y yo voy a ir monitoreando para que tengamos lo mismo. Aquí. Se los pongo así. Y listo. Si tienen alguna duda, me avisan o algún impedimento. Mientras yo voy a buscar en los comandos, los voy a tratar de dejar porque creo que aquí hay una parte de conexiones. Este. De hecho, son dos cosas que les quiero compartir. Creo que este tema te salió a tí, Jaron, en el viernes. No sé si se acuerdan que como que no te dejaba hacer algo por un, porque un puerto ya estaba ocupado y demás, ¿no? Esto que estoy aquí subrayando, que le puse matar puerto, son los comandos que se tendrían que haber hecho. Básicamente es encontrar qué puerto es el que te está dando cuál es el que está ocupado. Y ya que te dé el PID, ya lo matas con esta instrucción. Ya con eso se liberaría. Y la otra que les pongo, que de hecho si no lo tienen, no van a poder usar Nano dentro de ese contenedor. Entonces, antes de eso tendríamos que salirnos de la instancia. Yo, por ejemplo, estoy aquí adentro, me tendría que salir y conectarme otra vez a la instancia, pero como root. Entonces, por eso tengo que usar este comando que está acá que dice instalar Nano. Uso esto, ya me conecto como root, ya puedo instalar Nano. Después de que se instale, ya me salgo, me vuelvo a conectar normalmente, o sea, no como root, y ya puedo hacer Nano de los archivos que están aquí. Va. Entonces, con eso terminaremos esa pequeña práctica. Y ya el último paso va a ser hacer un ping que, déjame ver si también lo tengo en los comandos, si no lo voy, si no lo escribo ahorita. Ok. Voy a copiarme esto para dejárselos también acá, aquí abajito. Con esto nada más déjame ver si me conecto acá, ok, y ejecuto este comando. Perfecto. Esta parte y listo. Vamos a ejecutar este otro telnet creo que era este. A ver, aquí voy a agregar los comandos. Este no era. Ok, este tampoco es. Y más bien era entonces este de acá. Cero. Yo ahí tengo una duda. Sí, Harold, dime. ¿La IP es la misma? La IP es la misma. En el LDAP hora. LDAP hora, a ver, vamos a ver. LDAP hora. Arriba en el Nano, abajo. En este? Ah, ok. Mira, tú aquí le puedes poner el IP que es como yo lo manejé o puedes poner simplemente el nombre del servicio. El nombre del servicio es LDAP Server. Yo lo hice nada más por corroborar que estuviera bien mapeadas las IPs. Ahorita muestro cómo saqué esa IP pero lo puedes dejar más bien así como servicio. De hecho esto es lo que decíamos que sirve como resolución de nombres, de names. Como están dentro de la misma red de Docker, es lo mismo poner eso, poner el nombre del servicio. Ok. Va. De hecho esto sería más universal para no estar moviéndole ahí a las IPs y demás. Ok. Bien, entonces. Sale entonces. Este es el comando que estaba buscando. Con esto ya estaríamos. Ese es el del ping. Este es el del LDAP. Y tendré que hacer este esta parte de acá. Del net. El LDAP Server. 3.8.9. Ahí está. Ok. Entonces me avisan cuando ya hayan instalado el bueno más bien los archivos. Hay que instalar primero un nano. Y con eso ya podríamos editar el archivo. Ya después de los archivos nos vamos con esto del ping. Y lo de la instalación de telnet para corroborar la configuración con el servidor el LDAP. Y con eso ya estaríamos terminando la práctica. Tiene que hacer un ping. Tiene que ser exitoso y telnet debe dar una respuesta correcta. Entonces a ver si quieren voy ayudando monitoreándoles. Por si se aturan en algo. Va. Me avisan. Ok. Creo que ya pudieron también instalar nano. Ahí están ya creando los archivos. Perfecto. Vamos a ver si han. Ahí está. Incluso hiciste lo de la conexión a telnet. ¿Verdad? Sí, sí. Así se debería ver. No, mira, de hecho, ahí si tú te fijas ese 172.21.03 es la conexión, es la IP que te da el servicio LDAP Server. Que ese es el servidor LDAP que instalamos. Ahí saque la IP. Entonces es lo mismo que usar esa IP. Creo que era la misma que yo puse. Ah, no es cierto. A mí me dio la 19. Y a ustedes les dio por ejemplo a la 21. Entonces eso es normal que cambie porque Docker las hace directamente. Entonces eso no hay tema. Ahora que se quedó así tu comando de telnet. Lo que pasa es que telnet así se queda. Puedes darle con control C y se cierra. Control C hasta que se cierre. Varias veces. Ahí está. Ya se cerró. Ya te regresó el control a la terminal. Ok. Ahora mira, lo último que te pediría a ti hacer. Bueno, a todos los vamos a hacer. Entonces, si quieres ahorita te lo pongo. Vamos a ponerle yo bueno, creo que es más fácil. Si la ponemos así. 5, 6. Ah, sí, no. No va a aparecer. Es más bien. Yo no doy. A ver cómo lo escribimos. Aquí está. Este. Conectate esta con esta conexión. Igual es la que está abajo. Bueno, de esa sección. Es QL plus o es la línea de comando. John doy arroba la base de datos. Exacto. Ahí estás con la con John doy. Ok. Ahora ahí si te fijas ya te reconoció el usuario. Ese usuario, si te acuerdas, está creado en el servidor LDAP. ¿Estás de acuerdo? Ok. Entonces ahí ya nada más mete el password que encriptaste. Que si estás conmigo, debe ser 1, 2, 3, 4, 5, 6. Aquí me está pidiendo un username. Lo que pasa es que creo que el enter password te equivocaste. ¿Algo salió mal? Porque dice que no y te vuelve a pedir el password. Si quieres vuelve a meter el password o salte con control C, vuelve a intentar conectarte. O creo que nada más dar enter y dejarlo en blanco, se deja, se te saca. Ahí está. Intenta conectarte. Intenta tal vez meter el password 1, 2, 3, 4, 5, 6. De todos modos no te debe de dejar loguear. Porque hay una configuración adicional que hay que hacerle al password. Va. Ok. Sin embargo ahí ya te está reconociendo que hay un usuario. Ahora, nada, ya intentaste hacer el ping y el telnet. El telnet ya te respondió, ¿no? Ah, perfecto. Y el ping lo intentaste hacer? No, el sí y todo bien. Ah, mira, si quieres salte e intenta hacer el ping. El ping lo tienes que hacer desde tu máquina host. O sea, tienes que salirte incluso de esa terminal exactamente. Y ahí ejecuta el Docker Hex, el de la línea 30. Si configuraste todo bien, eso también te tiene que responder. Ahí básicamente, si quieres para entender. Bueno, ahorita lo vamos a explicar para todos. Pero así rápido, ahorita que estás ahí tú. Ese ping, lo que está haciendo, está haciendo una conexión desde el servidor que dice Oracle Debe Demo con el servidor LDAP Server. Entonces ahí ya te dio conexión. Entonces sí, ya configuraste bien los dos servicios. Ok, aquí no importa entonces que esta dirección sea diferente. Bueno, es que también ya no lo cambie en el de hora LDAP. Sí, no. Ahí tienes, o sea, en automático hace la resolución de nombres. Tú puedes poner el nombre del servicio LDAP. Ya con eso sabe quién es el. Pero aquí lo tengo todavía con la dirección que nos comentabas. Entonces debería cambiar este, ¿no? Es que es lo mismo. O sea, si lo quieres cambiar con dirección IP, está correcto. Si le quieres poner nada más el server, el nombre, el LDAP Server, es correcto. Ok, entonces digamos que hasta aquí está bien. Es lo mismo. Sí, porque ahí mientras ya te ya te entendió el ping, ya te dijo ahí que está recibiendo paquetes. Ya está conectado desde Deemo hasta LDAP Server. E incluso hiciste la prueba de Telnet, ¿no? Sí. Ok. Esa prueba de Telnet se hace dentro del del servidor Oracle. Entonces, ese Telnet se está configurando al exactamente, se está conectando al servicio LDAP Server. Ahí te está diciendo, mira, conectado al servidor LDAP por el puerto 389. Entonces, está correcto. Bien, entonces, bien, entonces, claro. Vale, voy a revisar los demás. A ver, entonces, ya terminaste. Vamos a ver con Aaron. Ok, entonces, ah, mira, ahí estás matando ese puerto. Te estaba dando problemas, ¿no, Aaron? No, yo pensé que había que matarlo. No, ese es porque el viernes, Carol, intentó hacer algo, creo que levantar la instancia del Docker y le decía que no se podía instalar el servicio del servidor, del LDAP, porque ya estaba ocupado el puerto. Entonces, no, no es necesario. O sea, si solo es, si te da problemas. Ok, entonces, ahí ya Ahí ya quedaste. Mira, cómo vamos a terminar esta práctica. Si quieres, métete a la terminal, ahí mero, y conéctate a la instancia que acabamos de crear, que es la de, ahí, ahí en los archivos están las conexiones. En la primera es sí, está, sí, la línea 1. Esa línea 1 te deja conectarte a la instancia ahora con el DVDemo de forma normal, por así decirlo. Y la 30 te deja conectarte al mismo servicio, pero a la misma instancia, perdón, pero con el usuario root como administrador. Entonces, fíjate, ya te conectaste, ¿no? Ahora con DVDemo. Ok. Ahora hay que meternos a encontrar los archivos de configuración del tns names y el listener. Entonces, eso también viene ahí en la chuleta. Te vas a CD, ahora, exactamente, ahí mero. Exacto. Bien, entonces. Llévate ahí. Le das pegar y entero. Ahora escribe ls espacio la. Exacto. Mira, ahí están los archivos. Entonces, tú ya tienes el listener, ya tienes el ls polynet y tienes el tns names. Entonces, lo que hay que hacer ahora es crear un archivo lbap, ¿va? Entonces, ya intentaste instalar sudo antes. ¿Ah, no? ¿Como root? ¿No? Ok. Entonces, hay que salirnos de ahí. Hay que darle exit. Correcto. Y nos conectamos como el usuario root. Ahora sí, en la línea 30 venía el comando. Correcto. En la línea 30 es el docker no, la 30. Esa mera. Esa mera. Correcto. Esa la puedes pegar. Entonces. Y ya enteraste como no, esa no. No, la 30 creo que se te pasó ahí. Mira. La línea 30 es esa mera. Correcto. Copy. Exactamente. Bien. Entonces. Y ahí le das pegar. Ok. Ahora, esa ah, no me equivoqué de me equivoqué de línea. A ver, ¿me puedes dejar ver otra vez? Más bien. A ver si si no nos la ah, no es cierto. Era la 27. La línea 27. Ahí se me fue a mí. Esa mera. La 27. Conectate. La terminal. Correcto. Exacto. Y la pegas. Perfecto. Entonces, cuando te conectas esa línea lo que haces que te está diciendo es que te estás metiendo a la instancia pero como usuario administrador ahí te dice como root. Sí. Entonces, esta línea o esta conexión ya te va a permitir instalar paquetes, software. Entonces, ya voy a desinstalar nano. Ahora sí, otra vez nos vamos allá. El nano ya lo instalé. Ah, ya lo instalaste? Ok. Ok. Entonces, hay que salirnos con exit y regresamos a la conexión de la línea 1. La normal. Perfecto. Entonces, nos volvemos a meter con la primer conexión. ¿Esto? Ajá. E igual aplicamos la línea 2 para entrar al al directorio. Si quieres, conéctate. Ajá. Dale pegar. Y luego vas a ya que estés ahí dentro a ver si intentas meter las flechas de arriba. Se debe de guardar ahí el comando. Andale, ahí mero. Ahí mero. Dale enter. Ahora sí. Ahí vamos a poner entonces el archivo nano. ¿Para reempatar o no? Y esto ya? Y no lo pasas todo. Correcto. Puedes hacer ese mero. Nano, LDAP, hora. Correcto. Excelente. Ok. Ahora ahí llévate lo que viene en el contenido del archivo que son las piezas de la línea. Ahí lo bajito. En el, en el este, el coucher, en el navegador. Ahí mero. En la línea 5 y 5 al 7. Hay que copiar 5, 6 y 7. Que son esas dos. Ok. Dale copiar. Sí. Y llévatelo a tu terminal. Ahí mero. Aquí dice 1721903. Hay que cambiarlo. Hay que borrarlo. Hasta ahí. Ok. Borra, borra todo. 172 también todo. Y escribe porfa LDAP guión server. Ahí se te fue una diagonal. Es más bien un guión. Correcto. Ahora sí. Ahí vas a presionar las teclas control x. Y ahí te dice que si quieres guardarle dices que con la tecla y nada más. Y enter. Perfecto. Ahí ya se guardó el LDAP ahora. Entonces con eso ya nada más tendríamos que hacer ahora otro nano. Pero del archivo SQL net. Ahora. Y si quieres darle tabulador se completa. Ok. Perfecto. Dale. Enter. Y ya tenemos los tenes en names. Ok. Ahí eso hay que copiarlo. Igual del Codeshare. Y lo copiamos con exactamente lo de abajito. Lo de la línea 17 y 18. Eso mero. Hay que copiarlo. Y si quieres darle ahí un enter. Ahí pégalo. Ok. Y hay que borrar las dos primeras líneas que están. Todo eso no va. Correcto. Correcto. Y ahí dale suprimir. Ahí está. Ahora sí. Igual. Control x. Te sales. Y le dices que si. Y lo guardas. Exacto. Con eso. Ahora a ver. Ya tenemos esos dos. Ahora a ver en el Codeshare. Ya nada más te haría falta hacer la prueba de telnet. Tienes telnet ya instalado? Creo que sí. A ver si quieres ejecuta la línea 31. Porfavor. Sí. La 32. Ah ya está. No está bien. Estaba bien esa si quieres. La 32. Si te deja hacer eso. Ya la hiciste. Y ya con eso terminamos. Vamos a hacer el telnet. Ok. Enter. Ok. No tienes instalado. Entonces hay que salirse. Entrar como root. Que es la No. Como root es la 27. Hay que ejecutar esa. Pero antes de que le des enter o pegar. Ahí dale copiar. Antes de que la pegue primero dale exit. Hay que salirse. Ok. Ahora si ahí pega. Y ahora si ahí adentro dale enter. Hay que instalar el paquete. Entonces lo instalamos con exactamente la 31. Y listo. Con eso puedes ir haciendo el telnet. Perfecto. Ahí está. Se está descargando. Entonces si quieres ir desde ahí tal vez lo puedes hacer. El otro comando ya nada más es hacer la conexión. Y si te responde entonces ya está configurado bien la conexión al este al server. Es la 31. Exacto. Debes de tener el puerto y todo configurado con los archivos tncname. Ya la hicimos. Dale pegar. Ahí está. Conectado. Ya está. Entonces ya te conectaste. En este caso a ti te dio la 18.03. Para salirte de esa modo nada más dale control x. Perdón control c. Y varias veces para que hasta que te salga. Ahí está. Ya te salió. Ahí ya te conectaste. Ya hiciste la prueba de conexión. Entonces ya está configurado tu servidor de Oracle con tu servidor de LDAP. Si quieres intentar conectarte desde la línea de comandos a SQL plus con el usuario y ya con que te reconozca el usuario la primera vez. Con eso ya estarías este finalizando. Pero bueno ahorita ya hiciste las pruebas de conexión y pues ya funcionó. Ya avanzaste. Sale. Listo. Luego gracias Aaron. Póstele. Sale. Luego vamos a ver. Listo. A ver. Vamos a ver a Leo. Leo ya estás con. Ah pues creo que ahí estás ya terminando verdad. Agregando el SQL a no LDAP. Aún no porque estoy batallando desde hace rato porque en el bash de Oracle no tengo no tengo nano ni vi. Y no puedo. Entonces aquí para salirme del nano ¿Cuál es? ¿Control qué? Control X. Control X. Control X. Y te sales. Control X. Ahí le dices que no. Porque nada más se guardó una X. Ok. Mira. A ver, a ver. Ahí estás con ese. Ah. Y aquí le intento por ejemplo con el nano que es de acuerdo a lo que tú dices. LDAP. Ah primero tengo que ir al fondo. Pero si quieres escribe cualquier nano. Ahorita nada más como para ver si está el paquete. Ah ok. Sale. Entonces hay que salirnos. Hay que salirnos. Y ejecuta porfa el comando de la línea 27. Sí. Ahí es semero. Entonces fíjate. Ese comando lo que hace es que te dejan entrar a la instancia. O sea el contenedor. Pero como root. De hecho ahí se ve que dice root. Mira. Si le das paste. Ah exacto. Docker ejecuta root en la instancia de Oracle DB. Demo. Bash. Ahí se te fue. Aquí en el papel Bash. Exacto. Dale enter. Correcto. Ahí estás ya como root. Ahora sí. Ahí puedes instalar nano. Entonces dale zoom. O la 28. Exactamente. Zoom install. Nano. Y puedo ver vía ahí ¿no? O también. Ahora si te gusta el vía ahí. También. Ese está muy bueno. Ahí. Sí nano me confunde un poco. Pero este el vía ahí sí es con el que siempre ah vale. Bien. Entonces va. Y de una vez. No se es mal onda instala porfa el que dice telnet. En la 31. El telnet. Zoom install. Menos. Y Y. Espacio. Install. Menos. Y. Zoom install. Menos. Y. Es la 31. Zoom install. Menos. Y. Espacio telnet. Telnet. Ajá. Exacto. Dale enter. Bien. Ahí cargó. Ahora sí te podrías salir y volver a conectarte como la como te conectaba sin sin root. Sin ser root. Ahí mero. Ajá. Ahora sí. Ahí ya te vas a la ruta. Y ya puedes hacer con tus con tus archivos. Exactamente. Ahí ya puedes crear el el este ¿cómo se llama? El LDP. Perfecto. Ajá. Y copiar y pegar. Bien. Muchas gracias. Gracias. Ok. Ah bueno y la práctica termina cuando usas el le hace telnet con el LDP server 389 y ya con que te conecte ya la hiciste. Exacto. Va. Gracias. Bien. No gracias a ti. Sale. Entonces Leon ya también ya está. Vamos a ver. Si alguien
on 2024-02-06
language: ES
WEBVTT porque voy viendo así como que los que me encuentran aquí, creo que nada más nos falta revisar a Orlando, no? creo que ya también ya está, ah pues ya estás, ya hiciste la prueba Orlando, si te conecto verdad? ah ahí está mira conectado al NDA P servicing, perfecto, bien entonces, ya si quieres puedes darle control C varias veces para que te regrese el control a la instancia, al bash, intentaste hacer el ping, perdón, digo de todos modos ya vimos que ya te conectó pero no es como para que puedas ver el ping también, no, ese no, a ver si quieres salte de ahí con control C, hazle varias veces hasta que te saque dentro de la terminal, ahá ahí mero, exacto ya te saliste, ahora hay que salirte incluso de ahí para que el ping lo ejecutemos desde el host, eh configura esto todo bien, bien entonces Orlando, ok gracias, bien entonces no gracias a ti, va pues creo que entonces ya todos terminamos y pues bueno esta era como la práctica sobre todo el tema que ilustra el uso de los TNC names, de cómo se configura contra otras instancias, otros servidores, vamos a ocupar todavía esta instancia para una práctica más adelante así que este ahí para que no la borremos, de entrada pues las que siguen las vamos a regresarnos a la instancia anterior, a la que tiene la instancia cargada de la base de datos de Human Resources, va, entonces este esas conexiones ya las tenemos ya de antes ahí en nuestro IDE, en el SQL Server y con eso, ya lo demás, esta digamos el cierre, la parte del servidor LDP, no sé si a alguien le quedó alguna duda, pregunta, inquietud, comentario respecto a cómo ocupamos los TNC names para incluso ahorita ya vimos conectarnos a otra instancia, que aunque es local, o sea realmente es una instancia local aquí en Docker, con Docker se puede decir que estamos simulando al usar varios contenedores que están en digamos otros servidores, aunque estoy de acuerdo, al final de cuentas la red es local, pero dos se acuerdan que les decía el viernes que aunque es local de todos modos Oracle, todo lo maneja así, como si fuera una base de datos distribuida, entonces aunque sea local, si está, si tuviéramos no sé, bastante información que estuviéramos probando y demás, pudiéramos hacer este o pudiéramos monitorear mejor dicho, cómo se ve esa información, pues este cómo se va distribuyendo, incluso siendo de forma local, pero bueno, esa es como la, digamos la propuesta que trae Oracle respecto a cómo manejar esta parte y cómo configurar los archivos estos del TNC names, el SQL en ed y los listes, no sé si quedó alguna duda con esta parte o podemos continuar, perfecto, va, entonces creo que no hay mayor inquietud, muy bien, perfecto, este, pues bueno, entonces está correcto, vamos a continuar, y pues bien, a todos les quedó bastante bien la conexión, la práctica, entonces eso es buena señal, está, está súper bien esa parte, ok, entonces lo siguiente es trabajando con el listender, pero bueno, todo esto ya venía, ya viene este, o sea ya lo, ya lo, ya lo revisamos realmente, es lo que hemos estado trabajando, vimos, a ver, nada más lo voy a repartir así rápido, el listender por default es lo que crea Oracle cuando nosotros damos de alta una base, en este caso nosotros lo hicimos con nuestro Docker Compose, sí, y de hecho aquí te lo dice, mira, el listender predeterminado no se requiere una configuración adicional para comenzar a aceptar conexiones en la instancia, entonces la personalización puede ser necesaria para cuando tú quieras hacer algo en específico, sí, como cambiar el puerto, agregar protocolos, si nosotros cambiáramos en el archivo Docker Compose que tenemos, ya sea de cualquiera de las dos instancias que ahorita hemos trabajado, si las hacemos por default, pues el listender lo va a hacer por default, pero si el día de mañana yo quisiera hacerle una modificación al Docker Compose que ya está instalado y volver a correr la instancia, reiniciarla, mejor dicho, ahí sí tendríamos que meternos al listender y hacer la modificación al puerto, porque si no ya no nos va a escuchar ninguna conexión, no, nada va a funcionar, entonces hay veces que cositas tan sencillas son las que nos dan dolores de cabeza, no, no saberlas no hay que hacerle mucho caso, no es que se refiera nada más a Docker, realmente es en la instalación tal cual cualquier instalación de Oracle, así es como funciona, listo, y bueno aquí también nos da la parte de lo del esquema de Human Resources, pero bueno es lo que hemos estado trabajando incluso, también tiene una parte Oracle, o sea lo podemos hacer de forma automático o lo podemos hacer manual, el hecho de cómo toma un tns names, que de hecho por eso es que fue digamos la práctica, se combinó, hicimos un ejercicio de cómo Oracle crea con el Docker Compose en automático las instancias, a ver ya acabó el pomodoro, pero nada más cerramos la idea y ya, ¿cómo crea las instancias por medio de la Compose? o nosotros podremos entrar al listender a los archivos, por eso es muy importante identificar la ruta y modificarlos, no, pues aquí nos dice eso, a diferencia del registro dinámico, el registro de servicio estático requiere una configuración manual del archivo listender, para definir específicamente los servicios de base de datos al que listender debe atender, tan estáticamente lo hicimos en este ejercicio, que nosotros agregamos un nuevo archivo que se ahí vimos dos ejemplos, ¿no? el por default, cómo lo creo en automático o de forma estática, nosotros haciendo ese cambio, si quisiéramos aquí dice, para configurar un servicio estático deberías agregar una entrada listender, que bueno en este caso ya la tenemos, los listenders ya están mapeados con los cdbs y con los pdbs, pero bueno nada más te da como la idea de si quieres agregar un nuevo esquema y demás, pues tú lo puedes agregar, configurar de forma estática, entonces pues bueno eso es básicamente el tema de listenders y demás, y pues bueno aquí nada más es lo que hemos estado practicando, si nada más que bueno no habíamos visto el tema de la presentación, pero bueno aquí está la parte, y bueno aquí nos lleva de la mano el ejemplo, bueno entonces esta parte del registro dinámico ya la revisamos, y pues bueno esto ya queda cubierto con las prácticas, perfecto, entonces ya sabemos dónde están los listenders, si ya los hemos modificado, ok, si lo que pasa es que es muy, o sea la vamos a hacer como si fuera una evaluación, son solamente cinco preguntas que es que cubren la parte hasta antes de, son los primeros temas ¿no? y es meramente teórico, básicamente porque se pide una evaluación al final del día, pero bueno realmente es bastante la práctica, bueno la parte teórica, o sea es mucho, entonces este para que nos dé tiempo pues yo lo lo quise partir en dos días ¿no? hoy vamos a hacer un pequeño cuestionario para no llevarnos mucho tiempo, uno de cinco preguntas y en el viernes que ya es el último día son las otras cinco preguntas teóricas, en el viernes además ya se hace un ejercicio práctico, igual es algo muy sencillo y lo vamos a estar haciendo, o sea el objetivo es que quede claro, no es tanto que sea un examen y demás ¿no? o sea es incluso el ejercicio es si hay dudas de más, igual lo vamos viendo pero es más como de uno por uno ¿no? como para que tengamos todos más claridad, pero bueno así es como lo vamos a manejar y al ratito en la última mitad del último pomodoro hacemos una pausa y hacemos ese cuestionario ¿va? ahora sí, discúlpame, ya a las 11 y cuarto les parece que regresemos al al mid ¿va? perfecto, bien, gracias bueno bueno comparto pantalla ¿va? ahí me ven ¿verdad? ok entonces hasta aquí hay algún comentario algo que quieran añadir, alguna duda, alguna idea, perfecto, entonces vamos a empezar con continuar, voy a poner el pomodoro, un momento, listo, sale, entonces este sería el tercero y bueno respecto al tema de son este, ok, en el siguiente pomodoro ya ven que hay uno que es de 15 minutos les propongo que realmente este es un tema más teórico, les comentaba y básicamente es porque pues se complica un poco hacer digamos una arquitectura distribuida, si, en digamos ahorita lo que hicimos de práctica pues si ocupa el concepto de la distribución a través del SQL bueno más bien de los list teners del tns names si ocupa el concepto digamos a una forma muy primaria porque bueno nosotros creamos dos contenedores aislados que se conectaron entre sí hicimos un ping y todo esto a través de la configuración de los archivos de conexión, un servidor ldap y un servidor oracle los logramos conectar y bueno a todos les respondió telnet a todos les respondió el ping, entonces esta parte la pudimos ver gracias a los archivos de configuración estos que mencionamos si y estos temas que siguen son igualmente que ocupan estos archivos si pero como te comento realmente crear una arquitectura ya distribuida en donde los servidores se comparten y demás si es un poco ya más complejo si entonces con la práctica anterior y con lo que ahorita demos de teoría pues este tratamos de cubrir este este tema por así decirlo más este más amplio y pues bueno aquí la idea es hacer este bueno seguir este este tema está esta diapositiva obviamente pues esto va a quedar fuera del este el cuestionario no porque la parte teórica si la podemos cubrir pero en la parte práctica obviamente no vamos a meter algo que tenga que involucrar crear algo no sé vamos a empezar con el concepto teórico y básicamente este este tema nos dice cómo podemos crear una arquitectura de servidor compartida esto no es más que una configuración que se tenía que hacer a oracle si como la que ahorita más o menos estuvimos trabajando entonces habilitación de un servidor compartido aquí de hecho podríamos compartir la responsabilidad carol si quieres me ayudas a participar leyendo esta diapositiva por 120 pero claro pero muchas gracias configuring a share server architecture habilitación de un servidor compartido conceptos básicos un servidor compartido en oracle database permite a múltiples usuarios compartir un conjunto limitado de conexiones de servidor lo cual es útil en ambientes con un alto número de usuarios concurrentes que no necesitan estar conectados a la base de datos de forma continua esto se logra mediante un pool de servidores compartidos que gestionan las solicitudes de los clientes si básicamente lo que ya nos ayudó a leer harold que si se acuerdan del archivo inip punto hora este archivo es un archivo de configuración que cuando yo hago el reinicio de la instancia de oracle es lo primero que carga digo es lo primero y después viene el tema de los tenes en el list tener todas esas configuraciones pero el primer archivo que carga oracle al ser reiniciar la instancia es este archivo inip este archivo de hecho así se llama inip dando a entender que es lo inicial y en este archivo nosotros si se acuerdan tenemos un montón de parámetros que se le configuran a la base de datos esos parámetros puede ser que se modifiquen ya sea a través de modificando el archivo o directamente a través de comandos como quien nos dice se cuele del tipo este alter alter algo estos parámetros se pueden modificar de esa forma aquí por ejemplo tienes el share servers que es una propiedad que le dice ahora con cuántos este proceso de servidor compartido se les puede se le puede agregar a tu instancia obviamente todo esto tiene que ver y va muy relacionado y de ahí empieza también el tema de cómo de qué tan complicado es esta parte no nada más es configurar esto sino que tenemos que hacer pues obviamente un estudio detallado de qué hardware incluye o se involucra mejor dicho en tu arquitectura en tu en tu plan por así decirlo no es decir que tú puedes monitorear tu o sea para crear todo esto tienes que tener en cuenta pues cosas ya muy elaboradas muy muy al nivel arquitectura que en la que tienes que conocer pues cuántos cuántos servicios vas a tener servidores o qué cantidad de memoria tiene cada uno también es importante que conozca por ejemplo que conozcas por ejemplo de tu negocio cuántas solicitudes tienes no con tus días pico tus tablas que son las más que más se ocupan los catálogos es demasiado hacer una proponer algo de esto hablar de esto porque realmente va muy de la mano con cada pues con cada organización cada institución no cada quien tiene su bónche de información y en específico muy en específico de cada organización se hace un plan en donde se puede pensar en cómo distribuir esa carga y demás entonces lo que sí es tal vez muy digamos común o algo que se habla de esto en los procesos que involucran la configuración de arquitecturas distribuidas pues en estos parámetros estos parámetros que ya aquí bueno la presentación nos dice que hace cada cosa y en dónde se pueden encontrar básicamente aquí en el archivo ini este archivo ini también se ve afectado como decíamos entonces nosotros tenemos otra otro tema que dice control de operaciones del servidor compartido esto es básicamente lo que también ya vimos en temas anteriores sólo que cuál es el digamos la diferencia pues que esto obviamente este monitoreo nosotros lo hicimos la primera vez que empezamos a ver las vistas y demás y los reportes y esos este módulos lo vimos sobre una pequeña instancia que instalamos no se imagina que entonces tú tienes una aplicación distribuida la interfaz de ahora coles la misma los comandos son los mismos lo vas a hacer igual lo único que cambia es que ahora col va a estar midiendo o te va a estar dando la información de un de un no sólo una instancia o en este caso servicios que tengas pues digamos asociados a diferentes instancias entonces dice una vez que tú habitas el servidor compartido es crucial monitorear su rendimiento y gestionar las operaciones adecuadamente ahora col proporciona vistas de diccionario de datos como se haré server a nuestros charles server monitor y que permiten supervisar el estado y rendimiento de los servidores compartidos entonces todo esto lo vemos en los reportes que teníamos de la vista pasada o podemos hacer un select a estas vistas en la práctica pasada en la hoja de queries por así decirlo venían estos este esto estas consultas y bueno ahí nos podemos retomar es prácticamente lo que hicimos la vez anterior si ahora col perdón ajuste dinámico ahora col database permite ajustar dinámicamente el número de servidores compartidos entre en respuesta a la carga de trabajo actual mediante el ajuste de los parámetros charades server y charades servers más charades server en tramos más en contexto es lo que hace no el más charades server dice el número máximo de procesos de servidor compartido y el charades server específico el número inicial de procesos del servidor compartido se básicamente nosotros con estos dos parámetros podemos decirle cuánto cuántos servidores de los que contamos nosotros con nuestra arquitectura van a estar de dedicados en ese sentido si se va a ir ajustando la carga de forma dinámica a que nos referimos con esto que si tú por ejemplo vas teniendo en un día normal un monitoreo todo es importante con ese monitoreo a lo mejor unas primeras cargas son básicas son no tan complejas no tan pesadas y tu servidor en automático con estas dos configuraciones va a estar tomando tal vez nada más el recurso o los recursos de un solo servidor o probablemente este ni siquiera llegue a llenarse esa memoria no es más muy estamos hablando de aplicaciones grandísimas o data demasiado muy muy vaya vaya muy este muy pesada como me imagino ustedes han de manejar porque ustedes son son gobiernos son una institución gubernamental entonces toda esa información este pues como ustedes saben pues es una práctica muy común pues distribuirla entonces básicamente es lo que nos está tratando de decir con respecto al tema del ajuste dinámico oracol lo hace de forma dinámica no tenemos que estarnos nosotros preocupando por aprovisionar más y más servidores o sea sí pero eso se hace sólo una vez obviamente si eso ya si ya ni eso alcanza para nuestra nuestro requerimiento pues bueno se tiene que replantear y hacemos una siguiente arquitectura no pero digamos que el primer análisis pues así nosotros configuramos o podemos configurar esos parámetros y listo sale aquí entra muy en específico también lo que es el sistema global area que ya lo habíamos revisado y el programa aquí se da un repaso de lo que es sistema global area es una estructura de memoria compartida que contiene datos y control de información para una instancia de oracol database incluye la caché de datos la caché de instrucciones sql la información del control de transacciones entonces esta área básicamente es importante por esto porque incluye esta información caché de información caché de instrucciones sql y información de control de transacciones es importante que esta sga siempre esté óptima entonces en respecto al tema de cómo se configura en el contexto de arquitecturas compartidas es este parámetro el init sga ahorita vamos a ver en las siguientes diapositivas ejemplos nosotros teníamos por ahí un comando de hecho creo que aquí tengo la salida en donde pues nos está dando la información de nuestro contenedor va esto es lo que tiene el contenedor pero nosotros este digamos en dad esto es que está un poco tal vez confuso no de entenderse estoy de acuerdo nosotros tenemos dos dos este ambientes y eso es como que lo que quisiera hacer un repaso para que no haya confusión más adelante no nosotros tenemos un ambiente de a desktop y aunque es virtual realmente este es como si fuera nuestro archivo nuestro sistema operativo primario este es nuestro post hagas de cuenta que ahorita no tienes un navegador haz de cuenta que ahorita no estás prendiendo tu máquina en windows y accediendo aquí haz de cuenta eso no ahorita no haz de cuenta que tú inicias tu máquina tu pc y es lindos es ubuntu entonces este dad esto para nosotros es nuestro post y dentro de este post realmente como les decía la primera vez que yo
on 2024-02-06
language: ES
WEBVTT va. Entonces ahí vamos viendo. Este lo pueden abrir desde el IDE o lo pueden abrir desde la línea de comando, desde donde sea, lo pueden ejecutar los queries. Yo voy a estar aquí solo monitoreando. Por ejemplo ahí Orlando ya está viendo el, la data actual, ahí lo tienes en números enteros, no están en decimales. Entonces ahí ahorita te vas a dar cuenta del cambio que aflicas, del 10% con la transacción. Puedes ver incluso antes, Orlando, el valor del parámetro show parameter under rotation. Abajito del bloque es semero para ver en cuanto
on 2024-02-06
language: ES
WEBVTT Y lo checamos, ¿va? ¿Les parece? Llama con más detalle, aunque bueno, veo que varios ya ahí avanzaron algo. Entonces, este, pues listo, si quieren ya lo podríamos ver con detalle mañana y si hay dudas puntuales, pues ayudaría más, ¿va? Listo, pues es todo. Entonces, este, perfecto. Gracias a ustedes, ahí nos estamos viendo mañana y pues bueno, gracias por su tiempo. Hasta luego, que tengan buen día. Hasta luego.
on 2024-02-06
Visit the Oracle Database 19c: Administration course recordings page